マンガで分かる Java入門講座

第10章 クラスとオブジェクト3
10-6. ネストしたクラス

「ネストしたクラス」の紹介と、外部からの使い方の解説を行います。

● ネストしたクラスやインターフェース

 クラス内に、staticとして宣言されたクラスは「ネストしたクラス」として外部から利用できます。

 クラス内に宣言されたインターフェースは「ネストしたインターフェース」として外部から利用できます。

 クラス内に宣言されたインターフェースは、暗黙的にstaticになるので、staticを付けなくてもstatic修飾子が付いたものとして扱われます。

図)ネストしたクラスやインターフェース
┏クラス━━━━━━━━━━━┓
┃┏staticクラス━━━━━━┓┃
┃┃            ┃┃
┃┗━━━━━━━━━━━━┛┃
┃┏staticインターフェース━┓┃
┃┃            ┃┃
┃┗━━━━━━━━━━━━┛┃
┗━━━━━━━━━━━━━━┛

ソースコード)ネストしたクラスやインターフェース
package sample;

public class MyClass {
    // 「ネストしたクラス」
    public static class NstCls {
    }

    // 「ネストしたインターフェース」
    // インターフェースは暗黙的にstaticになる
    public interface NstIntr {
        public void method();
    }
}

● ネストしたクラスやインターフェースの利用

 ネストしたクラスやインターフェースは、外部からは「クラス名.ネストしたクラス名」とすることで利用できます。クラス名とネストしたクラス名は「.(ピリオド)」で区切ります。

ソースコード)ネストしたクラスやインターフェースの利用
// 「ネストしたクラス」を外部から作成
MyClass.NstCls nstCls= new MyClass.NstCls();

// 「ネストしたインターフェース」を外部から実装
MyClass.NstIntr nstIntr = new MyClass.NstIntr() {
    @Override
    public void method() {
    }
};

● import文の利用

 「クラス名.ネストしたクラス名」という書き方が面倒な場合は、import文でネストしたクラスをインポートすることもできます。

ソースコード)import文でネストしたクラスをインポート
import sample.MyClass.NstCls;

ソースコード)ネストしたクラスの利用
// 「ネストしたクラス」を外部から作成
NstCls nstCls= new NstCls();

この講座のマンガ部分は「箱人形マンガ(Box Comic) 」で作成しています。
作成:2013/06/05  更新:2015/08/09  [Permalink]

クロクロ・ショップ
特殊な技術書多数あります
レトロ風RPG フルスクラッチ開発 全コード
レトロゲーム風RPGの全コードを掲載して解説した本
HTML5とJavaScriptで作る 落ち物パズルゲーム 全コード
『テトリス』や『ぷよぷよ』に類似した落ち物パズルゲームの全コードを掲載して解説した本
JavaScriptでリバーシゲームをつくろう
ライブラリを使わずに全コードを書いて、リバーシゲームを作るまでを徹底解説
ワールドマップ自動生成読本
二次元ゲームのワールドマップを自動生成するための本
レトロゲームファクトリー
過去のゲームを最新機に移植する会社のお仕事小説(新潮社)
顔貌売人 ハッカー探偵 鹿敷堂桂馬
プログラマーが探偵役のエンタメ・ミステリー第2弾 最先端の情報犯罪に安藤と鹿敷堂が挑みます(文藝春秋)
裏切りのプログラム ハッカー探偵 鹿敷堂桂馬
プログラマー鹿敷堂桂馬が、女性社長の安藤裕美と共に、IT業界で起きた事件に挑む。2016年の松本清張賞の最終候補作(文藝春秋)
×