ホームページ >Java >&#&ベース >Javaの列挙とは何ですか

Javaの列挙とは何ですか

藏色散人
藏色散人オリジナル
2019-11-09 11:06:366483ブラウズ

Javaの列挙とは何ですか

Java 列挙とは何ですか?

java 列挙型の定義と使用法

1. 列挙型の定義:

列挙型は A特別なデータ型です。特別な理由は、クラス型でありながら型よりも特別な制約があるためです。ただし、これらの制約の存在により、列挙型がシンプル、安全、便利になります。列挙型を作成するには、enum キーワードを使用します。これは、作成される型が java.lang.Enum クラスのサブクラスであることを意味します (java.lang.Enum は抽象クラスです)。列挙型は、一般的なパターン Class Enum> に準拠しており、E は列挙型の名前を表します。列挙型の各値は、保護された Enum(String name, int ordinal) コンストラクターにマップされます。ここで、各値の名前は文字列に変換され、序数設定はこの設定が作成される順序を表します。

2. 列挙型の使用:

列挙型クラスの作成: EnumTest

public enum EnumTest {
//星期一,星期二,星期三,星期四,星期五,星期六
MON(1), TUE(2),WED(3),THU(4),FRI(5),SAT(6){
public boolean isRest(){
return true;
}
},
//星期日
SUN(0){
public boolean isRest(){
return true;
}
};
private int value;
private  EnumTest(int value){
this.value=value;
}
public int getValue(){
return value;
}
public boolean isRest(){
return  false;
}
}

EnumTest 列挙型クラスの使用:

public class EnumMain {
public static void main(String[] args) {
for (EnumTest enumTest : EnumTest.values()) {
System.out.println(enumTest + ":" + enumTest.getValue());
}
System.out.println("---------------我是分割线------------");
EnumTest test = EnumTest.SAT;
switch (test) {
case MON:
System.out.println("今天是星期一");
break;
case TUE:
System.out.println("今天是星期二");
break;
case WED:
System.out.println("今天是星期三");
break;
case THU:
System.out.println("今天是星期四");
break;
case FRI:
System.out.println("今天是星期五");
break;
case SAT:
System.out.println("今天是星期六");
break;
case SUN:
System.out.println("今天是星期日");
break;
default:
System.out.println(test);
break;
}
}
}

結果:

MON:1
TUE:2
WED:3
THU:4
FRI:5
SAT:6
SUN:0

---------------私が境界線です-------------

今日は土曜日です

3. 列挙型の利点と欠点:

列挙型が登場する前は、特定の離散値のセットを表現したい場合、よく使用したのはいくつかの定数。例:

public class Entity {
 
 
public static final int VIDEO = 1;//视频
 
public static final int AUDIO = 2;//音频
 
public static final int TEXT = 3;//文字
 
public static final int IMAGE = 4;//图片
 
 
private int id;
 
private int type;
 
 
public int getId() {
 
return id;
 
}
 
public void setId(int id) {
 
this.id = id;
 
}
 
public int getType() {
 
return type;
 
}
 
public void setType(int type) {
 
this.type = type;
 
}

4. この定数メソッドを使用するデメリット:

1. setType のため、コードの可読性と使いやすさが劣ります。 () メソッドのパラメータは int 型です。

2. unsafe と入力します。ユーザーが呼び出すときは、型が完全に一貫しており、値の範囲が正しい必要があります。 setType(-1); と同様に、合法ではありますが、合理的ではなく、将来プログラムにさまざまな問題を引き起こす可能性があります。

3. 結合度が高く、拡張性が低い。何らかの理由で、Entity クラスの定数の値を変更する必要がある場合、変更が必要なときにその変更を忘れてしまっても冗談ではありません。

列挙型は、このような問題のために生まれました。これらは、任意の用語を別の用語と比較する機能を提供します。

以上がJavaの列挙とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。