ネストクラス(Nested Class)

Java

「ネストクラス」とは?

 状態:-  閲覧数:1,272  投稿日:2013-04-28  更新日:2013-04-29  
・あるクラス定義の中で定義されているクラス
・「入れ子クラス」も同義


「ネストクラス」に分類されるもの


1.内部クラス
・「親クラスのクラス定義」の中で定義され、staticでないもの(「static修飾子を伴うメンバ型」を除いたもの)
・上記の内「親クラスのメソッド定義」の中で定義されているもの(無名クラスであることが多い)を、ローカルクラスと呼ぶ

2.static なメンバクラス
・ネストしたクラスのうち、 static を付与して宣言されたクラスは全て static なメンバクラスとなる


コード例


class A{

 class B{ // 内部クラス
}

  public static void main( String args[ ] ){
    class C{ // ローカルクラス
}
 static class D{ // static なメンバクラス
}

}

・class B … 「ネストクラス」「内部クラス」
・class C … 「ネストクラス」「内部クラス」「ローカルクラス」
・class D … 「ネストクラス」「static なメンバクラス」
※「class C」は、「ネストクラス」であり、「内部クラス」であり、「ローカルクラス」でもある、という意味

二重ネストクラス

 閲覧数:399 投稿日:2013-04-29 更新日:2013-04-29 

二重ネストクラスとは?


ネストクラス内のネストクラス

コード例
class A{

 class B{ // ネストクラス

 class C{ // 二重ネストクラス
}

}

}


・二重ネスト出来るか出来ないか、と問われれば、可能
・だからと言って、「二重ネストクラス」利用を正当化する理由は一つも思い浮かばない
・要するに、全く推奨されていない書き方


トップレベルクラス

「インスタンス生成」VS「インスタンス作成」

コメント投稿(ログインが必要)