class Demo{
public static void main(String[] args){
System.out.println(innerclass.a);
}
static class innerclass{
static int a=1;
}
}
出力 1 を与えます。
内部クラスを static として作成している場合は、こちらを参照してください。外部クラスで簡単にアクセスできます。ネストされたクラスのインスタンスを作成するには、次のように外部クラス名を前に付けて参照する必要があります。
Outer.Nested instance = new Outer.Nested();
非静的ネスト クラス (内部クラス)
Java の非静的ネスト クラスは、内部クラスとも呼ばれます。内部クラスは、外側のクラスのインスタンスに関連付けられています。したがって、内部クラスのインスタンスを作成するには、最初に外側のクラスのインスタンスを作成する必要があります。内部クラス定義の例を次に示します。
public class Outer {
public class Inner {
}
}
Inner クラスのインスタンスを作成する方法は次のとおりです。
Outer outer = new Outer();
Outer.Inner inner = outer.new Inner();
内部クラスのインスタンスを作成するために、外部クラスへの参照の後に new を配置する方法に注意してください。
ネストされた非静的クラス (内部クラス) は、private と宣言されていても、外側のクラスのフィールドにアクセスできます。その例を次に示します。
public class Outer {
private String text = "I am private!";
public class Inner {
public void printText() {
System.out.println(text);
}
}
}