为什么java中的equals方法可以访问其他对象的私有域
3 回答
四无小青年
TA贡献88条经验 获得超43个赞
不知道你所说的equals()访问私有域是在哪看到的,在java中如果是普通对象,那它的equals()只是单纯的使用==来比较的。
//这是jdk1.7中的源码
public boolean equals(Object obj) {
return (this == obj);
}而字符串的equals()也没有你所说的访问私有域
//这是jdk1.7中的源码
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}望采纳
纷飞无悔3342058
TA贡献4条经验 获得超0个赞
equals比较的是字符的hashcode()值,平常我们比较相同的时候一般都是重写equals方法的。我不清楚你说的私有域是什么意思,大概是private所修饰的吧,想访问可以通过反射来访问,反射很强大的!
添加回答
举报
0/150
提交
取消
