亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 Java Java基礎(chǔ) 什麼是java枚舉

什麼是java枚舉

Nov 09, 2019 am 11:06 AM
java枚舉

什麼是java枚舉

什麼是java列舉?

java 枚舉的定義與用法

#一、列舉的定義:

? ? ? ?列舉是一種特殊的資料類型,之所以特殊是因為它既是一種類別(class)類型卻又比類型多了些特殊的約束,但是這些約束的存在也造就了枚舉類型的簡潔,安全性以及便捷性。建立枚舉類型要使用enum關(guān)鍵字,隱含了所建立的型別都是java.lang.Enum類別的子類別(java.lang.Enum是一個抽象類別)。枚舉型別符合通用模式Class Enum>,而E表示枚舉型別的名稱。枚舉類型的每一個值都會對應(yīng)到protected Enum(String name,int ordinal)建構(gòu)子中,在這裡,每個值的名稱都轉(zhuǎn)換成一個字串,並且序數(shù)設(shè)定表示了此設(shè)定被建立的順序。

二、枚舉的使用:

? ? 建立一個列舉類別: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;
}
}
}

結(jié)果:

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

---------------我是分割線------------

#今天是星期六

三、列舉優(yōu)缺點:

? ?在列舉出現(xiàn)之前,如果想要表示一組特定的離散值,往往會使用一些常數(shù)。例如:

?

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;
 
}

四、使用這個常數(shù)的方法的缺點:

? ? ? 1、程式碼可讀性差,易用性差,由於setType ()方法的參數(shù)是int型的,

? ? ? 2、型別不安全。在使用者去呼叫的時候,必須確保型別完全一致,同時取值範圍也要正確。像setType(-1);是合法的,但是不是合理的,今後會為程式帶來種種問題。

? ? ? ?3、耦合性高,擴展性差。假如,因為某些原因,需要修改Entity類別中常數(shù)的值,那麼需要改的時候,修改漏了,那可不是開玩笑的。

列舉就是為了這樣的問題而誕生的。它們給出了將一個任意項同另一項比較的能力。

以上是什麼是java枚舉的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72