Java私有(private)修饰符混淆

标签 java accessor private-members

我已经编写 Java 一些年了,但我仍然不明白为什么下面这个简单的示例类实际上可以通过编译。在这种情况下,我将为 myInt 创建一个 getter 方法,并使用该方法从 compareTo 中的 o 获取 myInt 方法,因为 myInt 被声明为 私有(private)。有人可以告诉我为什么这是访问omyInt的合法方式吗?

public class B implements Comparable<B> {

    private int myInt = 0;

    public int compareTo(B o) {
        return myInt-o.myInt;
    }

}

提前致谢!

最佳答案

根据Oracle's Java Tutorial

Access level modifiers determine whether other classes can use a particular field or invoke a particular method.

访问级别是在类级别设计的,不依赖于实例。

关于Java私有(private)修饰符混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28798503/

相关文章:

reflection - 字段前的 Groovy @ 符号

java - 私有(private)成员不被继承。那么 getter 和 setter 如何访问子类中的私有(private)字段呢?

c# - 自动属性必须同时定义 get 和 set 访问器是否存在技术原因

c# - 为什么不允许只有一个带有主体的访问器而不是两个?

java - 在 try-catch block 之后返回 null

c++ - C++如何在成员变量中实例化子类的实例?

java - 在 Controller 之外渲染 scala 模板? ( Play 2)

java - REST:未找到媒体类型=文本/纯文本的 MessageBodyWriter

java - listview中的所有项目分配给java中的checked

java - Apache Camel如何以 "body"格式提交正文