黑马程序员技术交流社区

标题: 获取一个类的属性的值的问题!! [打印本页]

作者: zhouxp3323    时间: 2012-4-10 22:23
标题: 获取一个类的属性的值的问题!!
一个Person类,它的对象是p,访问它的name属性,怎么有时可以直接写 p.name ?怎么有时又不能写p.name而只能写p.getName()呢?折腾了我好久啊,因为我的几个程序中,有p.name直接访问的,而有的程序中不能这么写?哪位大虾能指导下吗?
作者: 尹博    时间: 2012-4-10 22:40
代码是你自己写的吗? 如果把name私有化了就不能直接访问了,要调用方法访问,比如你这里的getName()方法,如果代码是你自己写的你不会不知道的...
作者: 王德南    时间: 2012-4-10 23:03
问题应该出在你的name属性的访问修饰符上啊。记住四个访问修饰符的访问范围分别是:
public 访问范围最大,也就是任何其他类都可以调用这个类的方法或属性。
private 访问范围最小,也就是只能在这个类的内部使用,外部调用不了
protected 访问范围算是中间,只有本类和子类才能访问。
默认(无):只有本类和包内才能访问。

作者: 刘保峰    时间: 2012-4-10 23:57
是封装的原因,如果私有的属性是不能直接访问的,代码中public ....set() ,public .....get() 方法就是为了封装,才提供的方法。俺学艺不精,仅供参考!!
作者: 孙国军    时间: 2012-4-10 23:58
如果你的属性name同过private修饰符修饰,那么你就不能直接通过  对象.属性   的方法调用
而要定义一个getName()方法通过return返回一个name




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2