HOME > 内部クラス(InnerClass)

内部クラス(InnerClass)

Javaではクラスの中にクラスを定義することができます。
ある特定のクラスでしか使わないクラスなどを内部クラスにしたりします。

サンプルソース

 コードサンプル

★内部クラスのクラス
public class InnerSample {

    public NaibuClass n;

    //内部クラスの定義(publicなので外部からもnewできる)
    public class NaibuClass{

        private String name;

        public String getName(){
            return name;
        }

        public void setName(String name){
            this.name = name;
        }
    }

    public void makeNaibu(){
        n = new NaibuClass();    //内部クラスをインスタンス化
        n.setName("hoge");
    }
}


★実行用クラス public class Test { public static void main(String[] args) { InnerSample is = new InnerSample(); is.makeNaibu(); System.out.println(is.n.getName()); } }

実行結果

 コマンドプロンプト

C:\>java Test
hoge



★内部クラスを他のクラスからインスタンス化することもできます。

※但し内部クラスの修飾子がpublicなど、アクセスできる修飾子である必要があります。

 上記InnerSample.java内の内部クラスをインスタンス化する

public class Test2 {

    public static void main(String args[]){
        
        InnerSample.NaibuClass n = new InnerSample().new NaibuClass();
        n.setName("HOGE");
        
        System.out.println(n.getName());
    }
}

実行結果

 コマンドプロンプト

C:\>java Test2
HOGE

Java基本カテゴリ