Javaちょこっとリファレンス
HOME > 内部クラス(InnerClass)

内部クラス(InnerClass)

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

サンプルソース

例)内部クラスサンプル

InnerSample.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");
    }
}
Test.java
//★実行用クラス
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内の内部クラスをインスタンス化する

Test2.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基本カテゴリ

HOMEへ戻る TOPへ戻る