Java 中的私有(private)成员与其他编程语言的私有(private)成员有什么不同?因为我很惊讶我可以只将某种类型的对象传递给 compareTo,然后在不使用任何 getMethod 的情况下访问该对象的私有(private)成员。
例如
public class Foo implements Comparable<Foo>{
private int bar;
public Foo() { bar = 1; }
public int compareTo(Foo o) {
if(bar == o.bar)
return 0;
return 1;
}
}
最佳答案
是的,Java 中的私有(private)成员不同于一些其他语言。例如,我认为 C++ 中的等效代码是无效的。
另一方面,它在 C# 中有效。在从封闭类或嵌套类访问私有(private)成员方面,C# 和 Java 之间仍然存在一些差异,但它们基本相似。
您真的不应该期望任何两种语言具有相同的行为。值得查阅您真正感兴趣的语言的规范 - 在本例中,它是 section 6.6 of the JLS .
关于java - Java 中的私有(private)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5975263/