java - Java 中的私有(private)成员

标签 java visibility

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/

相关文章:

Java向方法paint发送参数

java - Stripe invoice.payment_succeeded webhook 被多次触发

javascript - 在没有 jQuery 的情况下切换表列的可见性

java - 泛型 <? super A> 不允许将 A 的父类(super class)型添加到列表中

java - 为什么字符串在许多编程语言中是不可变的?

java - 如何创建一个可以存储队列或堆栈的变量?

wpf - 如何在 FlowDocument 中隐藏段落?

java - 根据共享首选项设置 ImageView 的可见性

java - 向听众添加信息

在 subview 上调用 setVisibility(View.VISIBLE) 后,Android ScrollView 滚动到顶部