1 -10 : インナーパブリッククラス
public 属性のインナークラスを外部から利用する例です。 Pub.Inner1 は static なので直接アクセスできます。これはstatic変数と同様です。 Pub.Inner2 は static ではないためまずPubクラスのインスタンスを作成しそのインスタンスからInner2を作成する必要があります。
[InnerPubTest.java]
public class InnerPubTest {
public static void main(String args[]) {
// Inner1クラスはstaticなので生成には
// Pubをインスタンス化する必要はない
Pub.Inner1 i1 = new Pub.Inner1();
// Inner2クラスはstaticではないので
// Pubをインスタンス化してから生成する
Pub.Inner2 i2 = (new Pub()).new Inner2();
}
}
[Pub.java]
public class Pub {
/**
* インナークラス1
*/
public static class Inner1 {
Inner1(){
System.out.println(""Inner1"");
}
}
/**
* インナークラス2
*/
public class Inner2 {
Inner2(){
System.out.println(""Inner2"");
}
}
}
実行結果
Inner1
Inner2