我在 Java 中有一个“私有静态”嵌套类。此类中的字段和方法的访问修饰符有何意义?我已经尝试过公共和私人,对我的申请没有影响。
public class MyList<T>{
private static class Node{ // List node
private Object item;
private Node next;
private Node prev;
private Node(Node next){
this.next = next;
}
private static Node doStuff(){}
}
}
因为它是一个嵌套类,所以一切都在Node
可以通过以下方式访问MyList<T>
,无论访问修饰符如何;因为它是一个私有嵌套类,所以首先没有声明任何内容Node
将在外部可见MyList<T>
.
因此,访问修饰符可能很重要的一种情况是重写超类方法的方法(例如toString()
)。您无法降低重写方法的可见性。toString()
必须始终声明为 public 以便该类能够编译。
还应该注意的是,当外部类访问私有成员时,编译器会创建一个合成方法(我相信是包范围)。此合成方法仅在嵌套类的 .class 文件中可见。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)