1 -10 : インナーパブリッククラス

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