[Java]JDK,JREの違い

JDKは、Javaアプリケーションを開発するためのツールキットであり、コンパイラやデバッガ、ライブラリなどが含まれています。
JREは、Javaアプリケーションを実行するための環境を提供し、JVMはJavaバイトコードを実行する仮想マシンです。

参考

https://aws.amazon.com/jp/what-is/java-runtime-environment

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