只是为了举例,我将 String 作为成员变量。但本来结构就复杂。
public class ClassA {
private final String test ;
public ClassA(String str) {
test = str;
}
@Override public int hashCode() {
return test.hashCode();
}
@Override public boolean equals(Object obj) {
return obj instanceof ClassA && test.equals(((ClassA)obj).test);
}
}
public class ClassB {
public static void main(String args[])
{
ClassA obj1 = new ClassA("abc");
ClassA obj2 = new ClassA("def");
obj1.equals(obj2);
obj2.test;//not valid
}
}
据我所知,可以访问私有(private)变量 test
的obj1
是否仅在 ClassA 的方法中存在,并且这些方法应该从 obj1
的上下文中调用。
当我打电话obj1.equals(obj2)
时obj2 的测试变量可以从 obj1 的上下文访问。
我们可以从 ClassA 方法中访问任何 ClassA 类型对象的私有(private)变量吗?
最佳答案
正如您自己所写:
So can we access the private variables of any object of type ClassA from within ClassA methods.
这是正确的。
关于java - java私有(private)变量约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18875446/