黑马程序员技术交流社区
标题:
equals方法中 对象私有成员访问问题。
[打印本页]
作者:
马德强
时间:
2011-12-8 21:58
标题:
equals方法中 对象私有成员访问问题。
本帖最后由 马德强 于 2011-12-9 09:32 编辑
class Person
{
private String name;
private int age;
Person(String name,int age)
{
this.name=name;
this.age=age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public boolean equals(Object obj)
{
if(!(obj instanceof Person))
return false;
Person p=(Person)obj;
return this.name.equals(p.name)&&this.age==p.age;
}
。。。。。。。
}
复制代码
为什么equals方法中,Person p 可以直接访问其私有成员age 和name 呢?
作者:
许邦存
时间:
2011-12-8 22:57
所谓的私有是对外部类来说的,equals方法是这个Person类中的方法所以能访问,如果放到外部类中,就只能用getname()方法和getage()方法了。
作者:
周胜
时间:
2011-12-8 23:07
因为p是person对象的一个引用,p指向的对象里面有私有name和age两个成员变量,自己调用自己的东西。。。
作者:
◇半度微凉
时间:
2011-12-8 23:34
因为上面代码中使用了private关键字修饰了name和age属性,这就意味着除了Person类本身,其他所有的外部类都不能直接访问这些属性,只能通过这些属性的取值(get)、赋值(set)方法来访问这些属性!而在Person类自己内部则可以直接调用这些私有变量!
希望能对你有帮助!呵呵···
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2