java - java私有(private)变量约束

标签 java

只是为了举例,我将 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)变量 testobj1是否仅在 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/

相关文章:

java - 停止 Java 在上传时返回错误

java - 如何将 ActionListener 添加到模态 JDialog?

java - 从旧 (1.x) 原型(prototype)创建的 Maven 项目

java - 字符串流未排序?

java - 强制 Windows 交换应用程序

java - 我们如何将 @ExceptionHandler 与 spring web flux 一起使用?

java - 运行测试不同循环结构的程序后没有输出

java - 将 JUnit 类别与 Maven Failsafe 插件一起使用

java - 使用 proguard 混淆 Parcelable 类

java - 有没有另一种方法来检索给定语言环境的默认模式?