Javaはクラス内にクラスを定義することが出来ます。クラス内に定義されたクラスはインナークラス(内部クラス)と呼ばれており、4種類の定義方法が存在します。定義方法によって異なった特性を持っており、間違った使い方をすると思わぬバグの元になり得ます。 本記事では4種類のインナークラスの違いのみを扱います。インナークラスの用途等は扱いません。今後取り上げるかもしれませんが。 本記事では、エンクロージングクラス = インナークラスからみて外側にあるクラスとします。 Javaにおける4種類のインナークラス 非staticインナークラス staticインナークラス ローカルクラス 無名クラス 非staticインナークラス 普通に定義したインナークラスです。 public class OuterClass { public static void main(String[] args) { new Ou