Javaの静的VS非静的列挙
この記事では、Java の enum
と、静的な enum と非静的な enums
の違いについて紹介します。
Java での Enum
の紹介
Java では、enum
は、プログラマーが複数の定数変数を作成するために使用できるデータ型です。 通常、プログラマーは final
キーワードを使用して Java で定数変数を宣言しますが、プログラマーは一度にすべての最終変数を宣言し、enum
を使用して初期値を割り当てることができます。
Enum
を使用する構文:
public enum EnumA { En1, En2 }
public class demo {
public static void main(String[] args) {
EnumA test = EnumA.En1;
}
}
上記の構文で、ユーザーは、EnumA
に En1
および En2
定数変数が含まれていること、および demo
クラスの静的メソッド内でどのようにそれらにアクセスしたかを確認できます。
Javaの静的VS非静的Enum
ここで、static
で宣言された Enum
と static
キーワードなしで宣言された Enum
を区別します。 ユーザーは、以下のコードを見て、static
キーワードの有無にかかわらず Enum
を宣言する方法を学ぶことができます。
Static
キーワードを使用する場合と使用しない場合の Enum
の構文:
public class demo {
public static enum EnumA { En1, En2 }
public enum EnumB { En3, En4 }
public static void main(String[] args) {
EnumA test1 = EnumA.En1;
EnumB test2 = EnumB.En3;
}
}
上記の構文では、EnumA
が static
キーワードで定義され、EnumB
が static
キーワードなしで定義されていることがわかります。 ただし、両方の Enum
の定数に同じ方法でアクセスしているため、Java では、ユーザーが定義中に static
キーワードを使用したとしても、すべての Enum
は静的であると結論付けています。
Java では、public static
メソッド内のオブジェクト参照なしで、静的メンバーにのみアクセスし、クラスの静的メソッドを実行できます。
さらに、開発者は、public static
メソッド内で EnumA
および EnumB
の変数にアクセスしていることを確認できます。これは、static
キーワードなしで宣言された Enum
もデフォルトで静的であることを意味します。 .
したがって、この記事では、プログラマーが Enum
を定義する際に static
キーワードを使用しなくても、デフォルトで静的であると結論付けています。