【发布时间】:2015-05-02 03:19:33
【问题描述】:
我写Java已经有几年了,但我仍然不明白为什么下面这个简单的示例类实际上通过了编译。在这种情况下,我会为 myInt 创建一个 getter 方法,并使用该方法从 compareTo 中的 o 获取 myInt 方法,因为 myInt 被声明为 private。有人能告诉我为什么这是访问 o 的 myInt 的合法方式吗?
public class B implements Comparable<B> {
private int myInt = 0;
public int compareTo(B o) {
return myInt-o.myInt;
}
}
提前致谢!
【问题讨论】:
-
private具有class范围。你还在同一个班。 -
你已经和B在同一个班级。私有成员可以从同一个班级访问。检查:docs.oracle.com/javase/tutorial/java/javaOO/variables.html Access Modifiers 私有修饰符——该字段只能在其自己的类中访问。
-
"一个类总是可以访问它自己的成员" - docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
-
谢谢大家,我想这就是原因。将其发布为答案,我很乐意接受。
标签: java accessor private-members