【发布时间】:2013-06-27 09:14:10
【问题描述】:
我遇到了一个相当奇怪的行为,不确定这是 Java 问题还是 Eclipse 的问题。
取以下代码:
class Foo {
private String text;
public void doStuff(Foo f) {
System.out.println(f.text);
}
}
这里的问题是,为什么 f.text 可以访问?这是一个私有字段,所以按照我的逻辑,它不应该是,但 IDE 似乎认为它是。
【问题讨论】:
-
基本上,不要假设一种语言的规则适用于另一种语言。相反,学习你使用的语言的规则。在这种情况下,请查看 Java 语言规范对
private的含义的说明。 -
这就像你不知道你的名字,NetBeans 是对的
-
我很好奇你的逻辑是什么。如果您描述了为什么您认为这应该是无效的,我们可以提供更好的解释。此外,在指责 IDE 或编译器之前,请先怀疑自己的理解。
标签: java methods private access-modifiers