1: 列挙型クラスの使用
メインコンテンツ:
enumクラスをカスタマイズする方法
キーワード enum を使用して列挙型クラスを定義する方法
Enumクラスのmainメソッド
インターフェースを実装するEnumクラス
決定されているクラスのオブジェクトの数は限られています。例は次のとおりです。
1. 週:月曜日(月曜日)、…、日曜日(日曜日)
2. 性別:男性(男性)、女性(女性)
3. 季節:春(春節)…冬(冬)
4.お支払い方法:Cash(現金)、WeChatPay(微信)、Alipay(アリペイ)、BankCard(銀行カード)、CreditCard(クレジットカード)
5. 雇用形態: 多忙、自由、職業、解雇
6. 注文ステータス: Nonpayment (未払い)、Paid (支払い済み)、Delivered (配達済み)、Return (返品)、Checked (確認済み)、Fulfilled (割り当て済み)、
7. スレッドのステータス: 作成、準備完了、実行中、ブロック、デッド
定数のセットを定義する必要がある場合は、列挙型クラスを使用することを強くお勧めします。
enumクラスの実装
>JDK1.5 にはカスタム列挙クラスが必要です
>JDK 1.5 の新しい enum キーワードは列挙クラスの定義に使用されます
列挙にオブジェクトが 1 つだけある場合、それをシングルトン パターンの実装として使用できます。
Enum クラスのプロパティ
1. 列挙型クラス オブジェクトのプロパティは変更できないようにする必要があるため、private Final を使用して変更する必要があります。
2. private Final で変更された列挙型クラスのプロパティはコンストラクターで割り当てる必要があります。
3. 列挙型クラスがパラメーターを持つコンストラクターを明示的に定義している場合、列挙値をリストするときにも対応している必要があります。
受信パラメータ
================================================= == ========================== カスタム列挙クラス
1. プライベート化されたクラスのコンストラクターは、そのオブジェクトがクラス外に作成できないことを保証します。
2. クラス内に列挙型クラスのインスタンスを作成します。次のように宣言されます: public static Final
3. オブジェクトにインスタンス変数がある場合は、プライベートファイナルとして宣言し、コンストラクターで初期化する必要があります。
例えば:
public class SeasonTest {
public static void main(String[] args) {
Season spring = Season.SPRING;
System.out.println(spring);
}
}
//自定义枚举类
class Season{
//1.声明Season对象的属性:private final修饰
private final String seasonName;
private final String seasonDesc;
//2.私有化类的构造器,并给对象属性赋值
private Season(String seasonName,String seasonDesc){
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}
//3.提供当前枚举类的多个对象:public static final
public static final Season SPRING = new Season("春天","春暖花开");
public static final Season SUMMER = new Season("夏天","夏日炎炎");
public static final Season AUTUMN = new Season("秋天","秋高气爽");
public static final Season WINTER = new Season("冬天","冰天雪地");
//4.其他诉求1:获取枚举类对象的属性
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
//4.其他诉求2:提供toString()
@Override
public String toString() {
return "Season{" +
"seasonName='" + seasonName + '\'' +
", seasonDesc='" + seasonDesc + '\'' +
'}';
}
}
操作の結果は次のようになります。
見てくれてありがとう!!!