java列挙の応用を深く勉強します。
一.列挙と静的定数の違い
列挙について話します。まず考えてみます。これはpublic static final Stringの修飾の定数と何が違いますか?
列挙した二つの長所を挙げます。
1.タイプの安全を保証しました。調整者は任意に1つのintまたはStringなどの値を伝えられません。
2.コードの可読性が非常に高い。
例を挙げます
実際のプログラミングでは、しばしばこのような「データセット」が存在し、その値はプログラムで安定であり、「データセット」の要素は限定的である。例えば春夏秋冬の4つのデータ要素は四季の「データセット」を構成しています。
あなたが書いた方法get(String season)は、入力タイプはStringタイプだけで、Stringタイプは春、夏しかないです。秋です。冬です。
この時。4文字列の定数を書きます。
上のような隠れた危険を防ぐために、列挙されました。
二.列挙を理解する
まず、列挙もクラスです。列挙を書いて理解します。
ここではついでに列挙します。
1.publicのコンストラクタを持ってはいけません。このようにすれば、顧客コードが一つのenumを新たに作ることができないことを保証できます。
2. 列挙は他の類を引き継ぐことができなくなりました。それは黙認してjava.lang.Enumを受け継ぎました。
3. 定数値の住所が唯一で、==直接コントラストができ、性能が向上します。
4.Enumはまた、values方法を提供しています。この方法は、すべての列挙値を便利に遍歴することができます。
5.Enumにはもう一つのオリジナルルの方法があります。この方法はエニュメレート・クラスの順序に戻ります。この順序はエニュメレート・ステートメントの順序によって決められます。
三.列挙のよくある使い方
第一種類:switchの運用
まず列挙を作成します。
列挙類
はい、こんなにたくさん書きます。これからもっと深く知る必要があります。皆さんの応援に感謝します。
列挙について話します。まず考えてみます。これはpublic static final Stringの修飾の定数と何が違いますか?
列挙した二つの長所を挙げます。
1.タイプの安全を保証しました。調整者は任意に1つのintまたはStringなどの値を伝えられません。
2.コードの可読性が非常に高い。
例を挙げます
実際のプログラミングでは、しばしばこのような「データセット」が存在し、その値はプログラムで安定であり、「データセット」の要素は限定的である。例えば春夏秋冬の4つのデータ要素は四季の「データセット」を構成しています。
あなたが書いた方法get(String season)は、入力タイプはStringタイプだけで、Stringタイプは春、夏しかないです。秋です。冬です。
この時。4文字列の定数を書きます。
public class Common {
public static final String SPRING=" ";
public static final String SEASON=" ";
public static final String SUMMER=" ";
public static final String AUTUMN=" ";
}
getメソッドにgetを入れて、確かに春を入れましたが、この時に隠れていることが分かります。get(Stering season)はSteringタイプです。新しい同僚や知らない同僚は、「春、夏、秋、冬」という言葉を入れるしかないです。この時、コンパイル期間には間違いがないです。運行してから、間違いを見つけました。上のような隠れた危険を防ぐために、列挙されました。
public enum Season {
SPRING(" "),
SUMMER(" "),
AUTUMN(" "),
WINTER(" ");
.....
}
この時、私達はget方法の参参を改正して、get(Season)に変えます。 season この時にget(Season.SPRING)を加えると、着信パラメータはこれらしかないと保証できます。二.列挙を理解する
まず、列挙もクラスです。列挙を書いて理解します。
//
public enum Season {
SPRING(1," "),
SUMMER(2," " ),
AUTUMN(3," " ),
WINTER(4," "); // ,
/*
*public static final Season SPRING = new Season(1, );
*public static final Season SUMMER = new Season(2, );
*public static final Season AUTUMN = new Season(3, );
*public static final Season WINTER = new Season(4, );
* ,
*/
/*
* 1. ,
* 2. private, new
*/
private Season(int code,String name) {
this.name = name;
this.code = code;
}
//
private String name;
private int code;
//
public String getName() {
return this.name;
}
public String getCode() {
return this.name;
}
// code ,
public static Season decode(int code) {
Season season = null;
for (Season type : Season.values()) {
if (type.code==code) {
season = type;
break;
}
}
return season;
}
// toString
public String toString() {
return this.name;
}
}
上の例では、列挙をよく説明しました。普通のクラスとは違いません。ただ別の書き方で属性のあるオブジェクトを作成しました。これもこのように属性のある構造関数を書かなければなりません。これだけです。ここではついでに列挙します。
1.publicのコンストラクタを持ってはいけません。このようにすれば、顧客コードが一つのenumを新たに作ることができないことを保証できます。
2. 列挙は他の類を引き継ぐことができなくなりました。それは黙認してjava.lang.Enumを受け継ぎました。
3. 定数値の住所が唯一で、==直接コントラストができ、性能が向上します。
4.Enumはまた、values方法を提供しています。この方法は、すべての列挙値を便利に遍歴することができます。
5.Enumにはもう一つのオリジナルルの方法があります。この方法はエニュメレート・クラスの順序に戻ります。この順序はエニュメレート・ステートメントの順序によって決められます。
三.列挙のよくある使い方
第一種類:switchの運用
まず列挙を作成します。
public enum Common {
INSERT,
MODIFY,
DELETE
}
// , 。 。
写実現代において
public class CommonUtils {
public static void getType(Common common){
Common c=common;
switch(c)
{
case INSERT:
System.out.println(" ");
break;
case MODIFY:
System.out.println(" ");
break;
case DELETE:
System.out.println(" ");
break;
}
}
public static void main(String[] args) {
getType(Common.DELETE); // :
}
}
第二の用法、key値でvalue値を取得して他の値を取得する。列挙類
public enum Season {
SPRING(1," "," "),
SUMMER(2," "," "),
AUTUMN(3," "," "),
WINTER(4," "," ");
private Season(int code,String name,String bz) {
this.code = code;
this.name = name;
this.bz=bz;
}
private int code;
private String name;
private String bz;
public static Season decode(int code) {
Season season = null;
for (Season type : Season.values()) {
if (type.code==code) {
season = type;
break;
}
}
return season;
}
public int getCode() {
return code;
}
public String getName() {
return name;
}
public String getBz() {
return bz;
}
}
テストクラスはい、こんなにたくさん書きます。これからもっと深く知る必要があります。皆さんの応援に感謝します。