Kōhei Yamamoto

Effective Java 第 2 版:第 4 章 項目 22

項目 22: 非 static のメンバークラスより static のメンバークラスを選ぶ

4 種のネストしたクラスの説明が述べられている。

ネストしたクラス (nested class) とは、あるクラスの中で定義されているクラスのことである。 ネストしたクラスは以下の 4 種類からなる。

……ばっちり内容が被っている記事を見つけたので、各クラスの説明は以下のリンクの紹介に代える。

先ほど紹介したクラスの種類とは以下のように対応する。

なぜ「非 static のメンバークラスより static のメンバークラスを選ぶ」なのかだけ書いておく。 このプラクティスは、メンバークラスを使うときに、そのクラスがエンクロージングクラスへアクセスする必要がないときに有効である。 なぜなら、非 static のメンバークラスは、エンクロージングクラスのインスタンスと一対一に関連づけられ、エンクロージングクラスへの参照を裏で持ち、これはリソースの浪費となる可能性がある。

参考文献

Effective Java 第2版