内部クラスについて共有します。
1.内部クラスとは
内部クラスとは、クラスの中にクラスを定義する。
内部クラスはメンバーと同じように扱うことができます。メンバーのようにprivate、protected、publicといったアクセスレベルを付与することができます。
なお、内部クラスを持つクラスのことを外部クラスといいます。
2.内部クラス使い方
// 外部クラス
class OuterClass {
private String str = "OuterClass Field";
// 内部クラス
class InnerClass {
public void innerMethod() {
System.out.println(str);
}
}
}
public class Main {
public static void main(String[] args) {
// 外部クラスインスタンス生成
OuterClass oc = new OuterClass();
// 外部クラスオブジェクトから内部クラスインスタンス生成
OuterClass.InnerClass ic = oc.new InnerClass();
ic.innerMethod();
}
}
3.staticな内部クラスの使い方
参考として、 staticな内部クラスから外部クラスの非staticなメンバーにはアクセスできません。
// 外部クラス
class OuterClass {
// staticフィールド
private static String str = "OuterClass Field";
// static内部クラス
static class InnerClass {
public void innerMethod() {
System.out.println(str);
}
}
}
public class Main {
public static void main(String[] args) {
// static内部クラスインスタンス生成
OuterClass.InnerClass ic = new OuterClass.InnerClass();
ic.innerMethod();
}
}