非静的ネストクラス(内部クラス)は、プライベートとして宣言されている場合でも、それを囲むクラスの他のメンバーにアクセスできます。静的にネストされたクラスは、それを囲むクラスの他のメンバーにアクセスできません。OuterClassのメンバーとして、ネストされたクラスは、private、public、protected、またはpackageprivateとして宣言できます。
内部クラスをインスタンス化するには、最初に外部クラスをインスタンス化する必要があります。次に、次の構文を使用して、外部オブジェクト内に内部オブジェクトを作成します。OuterClass.InnerClass innerObject = outerObject.new InnerClass();
public static void main(String[] args){
Stack stack = new Stack();
Stack.Node node = new Stack().new Node();
}
また
public class Stack
{
private class Node{
...
}
...
...
...
public static void main(String[] args){
Node node = new Stack().new Node();
}
}