[Java]内部クラス(インナークラス)

内部クラスについて共有します。

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();
    }
}

投稿者: kinkun

保有資格 Salesforce Certified Platform App Builder T Salesforce Certified Platform Developer I Salesforce Certified Platform Developer II Salesforce Certified Administrator

コメントを残す

メールアドレスが公開されることはありません。