Rom*_*man 8 java methods static class access-modifiers
我在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(){}
}
}
Run Code Online (Sandbox Code Playgroud)
ILM*_*tan 11
因为它是一个嵌套类,Node所以可以访问所有内容MyList<T>,而不管访问修饰符; 因为它是一个私有嵌套类,所以首先声明的内容Node都不会在外面可见MyList<T>.
因此,访问修饰符可能重要的一种情况是覆盖超类方法(例如toString())的方法.您无法降低重写方法的可见性.toString()必须始终声明为公共,以便编译类.
还应该注意,当外部类访问私有成员时,编译器会创建一个合成方法(我相信包范围).此合成方法仅在嵌套类的.class文件中可见.