Java eNumの初心者向けガイド–なぜ、何のためにEnumを使用する必要があるのですか? Java列挙型の例

公開: 2019-04-23

JavaeNumの初心者向けガイド-Crunchifyのヒント

列挙型は、変更できない変数のようなconstantsのリストです。 Final keywordについて聞いたことがありますか? そのようなものです。

ある種の数値またはテキストデータを表す事前定義された値のリストが必要な場合は、列挙型を使用する必要があります。 たとえば、チェスゲームでは、さまざまな種類の駒を列挙型として表すことができます。

変数(特にメソッドパラメーター)が可能な値の小さなセットから1つしか取得できない場合は、常に列挙型を使用する必要があります。 例としては、型定数(契約ステータス:「永続的」、「臨時雇用者」、「見習い」)、フラグ(「今すぐ実行」、「実行の延期」)などがあります。

整数(または文字列コード)の代わりに列挙型を使用すると、コンパイル時のチェックが増え、エラーが無効な定数を渡すのを防ぎ、どの値を使用できるかを文書化します。

初心者向けガイド-to-java-enum-why-and-for-what-should-i-use-enum

Javaの例:

出力:

Java列挙型に関するいくつかの非常に重要なポイント:

ポイント-1

すべての列挙型は暗黙的にjava.lang.Enumを拡張します。 Javaは多重継承をサポートしていないため、列挙型は他に何も拡張できません。

ポイント2

Enum in Java are type-safe:列挙型には独自の名前空間があります。 これは、列挙型が次の例の「Company」などの型を持ち、列挙型定数で指定されている以外の値を割り当てることができないことを意味します。

ポイント-3

作成時に列挙型定数の値を指定できます。 MyEnum.values()は、MyEnumの値の配列を返します。

出力:

ポイント-4

列挙型定数は暗黙的に静的で最終的なものであり、一度作成すると変更できません。

ポイント-5

列挙型は、以下を使用して安全に比較できます。

  1. Switch-Caseステートメント
  2. ==演算子
  3. .equals()メソッド完全なチュートリアルに従ってください。

ポイント-6

JavaのEnumのコンストラクターはプライベートのみであり、Enums定数はEnums自体の内部でのみ作成できるため、Javaでnew演算子を使用して列挙型のインスタンスを作成することはできません。

ポイント7

JavaのEnumのインスタンスは、コードでEnum定数が最初に呼び出されたときまたは参照されたときに作成されます。

ポイント8

列挙型は、型に割り当てられた定数値のリストを指定します。

ポイント-9

列挙型はクラスの外部または内部で宣言できますが、メソッド内では宣言できません。

ポイント-10

クラスの外部で宣言された列挙型は、static、final、abstract、protected、またはprivateとマークしてはなりません。

ポイント-11

列挙型には、コンストラクター、メソッド、変数、および定数クラス本体を含めることができます。

ポイント-12

enum定数は、構文BIG(8)を使用して、enumコンストラクターに引数を送信できます。この場合、intリテラル8がenumコンストラクターに渡されます。

ポイント-13

列挙型コンストラクターは引数を持つことができ、オーバーロードすることができます。

ポイント-14

列挙型コンストラクターをコードで直接呼び出すことはできません。 これらは、列挙型が初期化されるときに常に自動的に呼び出されます。

ポイント-15

列挙型宣言の最後のセミコロンはオプションです。

これらは合法です:

  • 列挙型Foo {ONE、TWO、THREE}
  • 列挙型Foo {ONE、TWO、THREE};

別の単純なJavaeNUMの例:

enum_data_type-Crunchifiy

列挙型は定数のリストです。 ある種の数値またはテキストデータを表す事前定義された値のリストが必要な場合は、列挙型を使用する必要があります。

変数(特にメソッドパラメーター)が可能な値の小さなセットから1つしか取得できない場合は、常に列挙型を使用する必要があります。 例としては、型定数(契約ステータス:「永続的」、「臨時雇用者」、「見習い」)、フラグ(「今すぐ実行」、「実行の延期」)などがあります。

整数(または文字列コード)の代わりに列挙型を使用すると、コンパイル時のチェックが増え、エラーが無効な定数を渡すのを防ぎ、どの値を使用できるかを文書化します。

その間、列挙型の使いすぎは、メソッドの実行が多すぎることを意味する場合があります(多くの場合、実行内容を変更する複数のフラグを取得する1つのメソッドではなく、複数の個別のメソッドを使用する方が適切です)が、フラグまたは型コードを使用する必要がある場合は、列挙型行く方法です。

これは非常に単純なJavaeNumの例です

出力: