一个人还有很多属性:publicclass人{String姓名无名氏;int年龄0;float身高0。0f;privateString小秘密;publicvoid自我介绍(){System。out。println(我叫姓名,今年年龄岁);}} 谁的小秘密都不可以直接让别人知道。private就限制了这个变量只能给个体内部使用,任何其他类里,都不能直接获取这个值。下面这个程序在编译会报错:class世界{publicstaticvoidmain(String〔〕参数){人我new人();System。out。println(我。小秘密);}} 既然这个小秘密只能由自己引用和修改,一般有公开方法可以让其他类间接接触这个变量:publicString回答(String听到的){if(听到的。contains(?)){return你猜?答案长度是小秘密。length();}elseif(听到的。contains(秘密)){小秘密听到的;return我记住了;}else{return。。。;}} 根据听到的内容,如果里面包含问号,就提示秘密的字符串长度,让猜秘密。如果包含秘密两个字,就把它存在小秘密变量里。再不然,就。。。了。 这个方法返回(return)一个字符串。可以在世界类里打印出每个回答。 在创建个体的时候,之前都是newxxxx(),没有传入任何参数。因此如果在创建后对属性初始化就需要这样做:大人大白new大人();大白。姓名大白;大白。年龄30; 另一种比较简洁的方法是,在大人类里定义一个带参数的创建方法:public大人(String姓名,int年龄){this。姓名姓名;this。年龄年龄;} 然后在创建大人个体时,就可以这样:大人大白new大人(大白,30); 同样可以在小孩类里定义一个类似的创建方法。黏贴复制的很愉快吧?不过每当这样愉快的时候,就需要警惕一下,因为重复的代码往往意味着设计问题,而且很可能增加今后代码维护的难度。一个不成文的经验是,重复代码越少越好。 一个思路是,大人和小孩都是人,那么这个内容相同的创建方法理应由人来定义。然后大人和小孩只要引用它就可以了。具体实现请参考super关键词。