HOWTO · Java

Javaの静的VS非静的列挙

このチュートリアルでは、Java の静的列挙型と非静的列挙型の違いを学びます。

このページの内容

この記事では、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;
  }
}

上記の構文で、ユーザーは、EnumAEn1 および En2 定数変数が含まれていること、および demo クラスの静的メソッド内でどのようにそれらにアクセスしたかを確認できます。

Javaの静的VS非静的Enum

ここで、static で宣言された Enumstatic キーワードなしで宣言された 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;
  }
}

上記の構文では、EnumAstatic キーワードで定義され、EnumBstatic キーワードなしで定義されていることがわかります。 ただし、両方の Enum の定数に同じ方法でアクセスしているため、Java では、ユーザーが定義中に static キーワードを使用したとしても、すべての Enum は静的であると結論付けています。

Java では、public static メソッド内のオブジェクト参照なしで、静的メンバーにのみアクセスし、クラスの静的メソッドを実行できます。

さらに、開発者は、public static メソッド内で EnumA および EnumB の変数にアクセスしていることを確認できます。これは、static キーワードなしで宣言された Enum もデフォルトで静的であることを意味します。 .

したがって、この記事では、プログラマーが Enum を定義する際に static キーワードを使用しなくても、デフォルトで静的であると結論付けています。