- ベストアンサー
ネストクラス
ある参考書の説明です。 「ネストクラスとは別のクラスのメンバのことです。 Staticメンバのことをネストといいます。 別クラスのインスタンスのメンバであるネストクラスを通常インナークラスと呼びます。 これは広い意味でネストクラスのことです。」 よく意味がわかりません・・・ もっとわかりやすく教えてください。 また、ネストクラスの解説が載っているページでもいいです。 お願いします
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
「ネストクラス」と「インナークラス」についてですよね。 私もその違いがいまいちよく分からず、調べているうちに 単に名前の付け方の問題だと知りました。 ●インナークラス 広義と狭義の2つあります。 広い意味ではクラスの中で定義されている全てのクラスの事。 狭い意味ではクラスの中で定義され、なおかつ非staticであるクラスの事。 ●ネストクラス クラスの中で定義され、なおかつstaticであるクラスの事。 Java 1.1リリース時は広い意味での「インナークラス」が採用されていたそうです。 現在では一般的に、staticか否かで「ネストクラス」と「インナークラス」を 使い分けるようです。
その他の回答 (1)
- makinko0129
- ベストアンサー率54% (6/11)
こんにちは。 私もインナークラスについて勉強しているところなんですが、手元に参考書には 「一般的にstaticメンバクラスを除くメンバクラス、ローカルクラス、匿名クラスを指してネストクラス(内部クラス)と呼びます。これは、staticメンバクラス以外はオブジェクト生成に外部クラスのオブジェクトが必要なためです」 と書いてあります。 私のイメージでは、広い意味でのインナークラス(インスタンスメンバクラス、staticメンバクラス、ローカルクラス、匿名クラス)があって、その中のインスタンスメンバクラスとローカルクラスと匿名クラスがネストクラスであると認識しています。 自信がないので、はっきりと「こうなんです」とは言えませんが、ちょうど勉強していたところだったので、書き込みさせていただきました。
補足
ありがとうございます。 勉強になります!
補足
なるほど! たんにStaticかどうかということなんですね! 書き方がややこしくて難しかったですが かなりわかりやすいです! 助かりました!