中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java 1.5新特性Enum的用法

發布時間:2020-08-18 13:53:06 來源:ITPUB博客 閱讀:163 作者:lotuszm 欄目:編程語言
Enum是enumeration(列舉)的簡寫形式,包含在java.lang包中.
public enum Season { winter, spring, summer, fall }


一個enum是定義一組值的對象,它可以包括零個或多個值成員.它是屬于enum類型的,一個enum對象中不可有兩個或多個相同的屬性或值.在次之前的java程序員一般是 用接口的方法實現列舉的,[@more@]public interface Season {

static winter = 0;

static spring = 1; //etc..

}

引入了enum的java的列舉的編寫方便了許多,只須定義一個enum型的對象.enum對象的值都回自動獲得一個數字值,從0開始,依次遞增.看一個比較簡單的enum實現的例子:

EnumDemo.java

package net.javagarage.enums;



/*

We can loop over the values we put into the enum

using the values() method.

Note that the enum Seasons is compiled into a

separate unit, called EnumDemo$Seasons.class

*/

public class EnumDemo {



/*declare the enum and add values to it. note that, like in C#, we don't use a ; to

end this statement and we use commas to separate the values */



private enum Seasons { winter, spring,

summer, fall }



//list the values

public static void main(String[] args) {

for (Seasons s : Seasons.values()){

System.out.println(s);

}

}



}
運行上述代碼你回得到 以下結果:

winter

spring

summer

fall

Enum的屬性調用:

下面的代碼展示了調用enum對象的方法,這也是它通常的用法:

package net.javagarage.enums;

/*

File: EnumSwitch.java

Purpose: show how to switch against the values in an enum.

*/



public class EnumSwitch {



private enum Color { red, blue, green }



//list the values

public static void main(String[] args) {

//refer to the qualified value

doIt(Color.red);



}



/*note that you switch against the UNQUALIFIED name. that is, "case Color.red:" is a

compiler error */



private static void doIt(Color c){



switch (c) {

case red:

System.out.println("value is " + Color.red);

break;

case green:

System.out.println("value is " + Color.green);

break;

case blue:

System.out.println("value is : " + Color.blue);

break;

default :

System.out.println("default");

}

}
}

為enums添加屬性和方法

enums也可以象一般的類一樣添加方法和屬性,你可以為它添加靜態和非靜態的屬性或方法,這一切都象你在一般的類中做的那樣.

package net.javagarage.enums;



/*

File: EnumDemo.java

Purpose: show how to use an enum that also defines its own fields and methods

*/



public class EnumWithMethods {



//declare the enum and add values to it.



public enum Season {



winter, spring, summer, fall;



private final static String location = "Phoenix";



public static Season getBest(){

if (location.equals("Phoenix"))

return winter;

else

return summer;



}



public static void main(String[] args) {



System.out.println(Season.getBest());

}

}

就是這么的簡單.但是有一點是需要注意的,那就是enums的值列表必須緊跟在enum聲明,不然編譯時將會出錯.

Enums構造函數:

和類一樣enums也可以有自己的構造函數,如下:

package net.javagarage.enums;



public class EnumConstructor {



public static void main(String[] a) {



//call our enum using the values method

for (Temp t : Temp.values())

System.out.println(t + " is : " + t.getValue());

}



//make the enum

public enum Temp {

absoluteZero(-459), freezing(32),

boiling(212), paperBurns(451);



//constructor here

Temp(int value) {

this.value = value;

}



//regular field?but make it final,

//since that is the point, to make constants

private final int value;



//regular get method

public int getValue() {

return value;

}



}

}
輸出結果是:

absoluteZero is : -459

freezing is : 32

boiling is : 212

paperBurns is : 451

盡管enums有這么多的屬性,但并不是用的越多越好,如果那樣還不如直接用類來的直接.enums的優勢在定義int最終變量僅當這些值有一定特殊含義時.但是如果你需要的是一個類,就定義一個類,而不是enum.
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富宁县| 武鸣县| 台江县| 金塔县| 南雄市| 新野县| 永清县| 彰化县| 衡南县| 神农架林区| 平陆县| 陇南市| 广昌县| 沙河市| 德庆县| 五家渠市| 海口市| 桦南县| 施甸县| 常山县| 罗定市| 尖扎县| 上高县| 岐山县| 菏泽市| 黄冈市| 定西市| 高碑店市| 北流市| 贵港市| 扎兰屯市| 海阳市| 铜山县| 沙坪坝区| 阿尔山市| 原平市| 酒泉市| 武定县| 方正县| 民丰县| 静安区|