所以我只是在寻求澄清。我有一个equals方法,它能够通过传递对象的cv.ch
返回实例变量而不返回它。这是怎么回事?
public static class Test {
private int v;
private char ch;
public Test(int v, char ch) {
this.v= v;
this.ch= ch;
}
public boolean equals(Object o) {
if ( this == o ) return true;
if ( o == null || this.getClass() != o.getClass() )
return false;
Test cv = (Test) o;
if ( this.v == cv.v && this.ch == cv.ch)
return true;
return false;
}
}
编辑:我改述了我的问题,以便更好地理解
答案 0 :(得分:0)
私有成员变量可由拥有它们的类访问,即Test。 Test中的任何代码都可以访问这些字段,无论它是通过“this”还是其他变量进行访问。
具体来说,JLS表示“[I]如果成员或构造函数被声明为私有,那么当且仅当它发生在包含声明的顶级类(第7.6节)的主体内时才允许访问成员或构造函数。“