求助:private成员的访问问题

bbdz 2006-03-20 08:28:38
public class Data implements Serializable{
private int value;

public Data(int value){
this.value = value;
}

public boolean equals(Object obj){
if(obj instanceof Data && ((Data)obj).value == value){ //这句正确,为什么
//if(obj instanceof Data && ((Data)obj).getValue() == value){
return true;
}
return false;
}

public void setValue(int val){
value = val;
}

public int getValue(){
return value;
}
}
请帮忙看看上面带注释的那一句为什么正确,不应该是那句下面我注释掉的那么写吗?
...全文
116 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuzl32 2006-03-21
  • 打赏
  • 举报
回复
这是同类对象之间的一种特殊关系,算是友元关系.
bbdz 2006-03-21
  • 打赏
  • 举报
回复
请问我上面说的是否正确?
bbdz 2006-03-20
  • 打赏
  • 举报
回复
((Data)obj).value访问的是obj对象的value,意思是只要在类定义里面(除了在静态方法中),那么这种通过对象来访问private成员是允许的,是这个意思吗?
做鸡真好吃 2006-03-20
  • 打赏
  • 举报
回复
Mark~
tygker 2006-03-20
  • 打赏
  • 举报
回复
因为它在Data类内部访问value,只要在Data类内部都可以问到private成员,就是在Data{ }这个大花括号里都能访问private成员,除了那些Data里的静态方法不能访问非静态成员(可访问静态成员)
bbdz 2006-03-20
  • 打赏
  • 举报
回复
obj不是一个参数吗,一个对象参数.那么对象如何能直接访问类的private成员呢?还是不明白。
humanity 2006-03-20
  • 打赏
  • 举报
回复
类的成员是可以直接访问自己所属的类的任何东西。

如果你这个 equals 方法不是在这个类 Data 中就不行,因为你是从外面进来的。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧