這篇文章將為大家詳細(xì)講解有關(guān)java中枚舉類(lèi)型定義和重寫(xiě)枚舉的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
沙灣網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站開(kāi)發(fā)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
什么是枚舉類(lèi)型
枚舉類(lèi)型(Enumerated Type) 很早就出現(xiàn)在編程語(yǔ)言中,它被用來(lái)將一組類(lèi)似的值包含到一種類(lèi)型當(dāng)中。
而這種枚舉類(lèi)型的名稱(chēng)則會(huì)被定義成獨(dú)一無(wú)二的類(lèi)型描述符,在這一點(diǎn)上和常量的定義相似。不過(guò)相比較常量類(lèi)型,枚舉類(lèi)型可以為申明的變量提供更大的取值范圍。
簡(jiǎn)單的枚舉類(lèi)型定義
假如你希望創(chuàng)建一個(gè)顏色庫(kù),你可以這樣定義枚舉類(lèi)型
enum Color {red, green, yellow, black};
然后你就可以使用它
Color T = Color.red; if (T == Color.red) System.out.println("i am red"); switch(T) { case red: System.out.println("i am red"); break }
定制枚舉類(lèi)型
在C/C++中,我們可以這樣使用枚舉變量
enum color {red,green}; enum color a = 1;// a is green
在Java中定義枚舉類(lèi)型的值
enum color { red(1),green(2); private final int number; color(int i) { this.number = i; } public getValue() { return this.number; } }
然后使用 T.getValue() 便可獲取綁定的值
重寫(xiě)枚舉的方法
枚舉類(lèi)給我們提供的方法有,具體可以查看Enum.java
name, toString, valueOf //獲取名字 equals //比較 ordinal //獲取位置
實(shí)現(xiàn)接口
所有的枚舉都繼承自java.lang.Enum類(lèi)。
由于Java 不支持多繼承,所以枚舉對(duì)象不能再繼承其他類(lèi),但是可以實(shí)現(xiàn)接口
Test
enum number { zero(0),one(1),two(2); int n; number(int i) { this.n = i; } public int getValue(){ return this.n; } } interface People_State { String getState(); State_Enum ChangeState(); } enum State_Enum implements People_State { normal("正常"), stop("停止"); private final String state; State_Enum(String s) { this.state = s; } public String toString() { return state; } @Override public String getState() { return state; } @Override public State_Enum ChangeState() { if (this == normal) return stop; else return normal; } } public class Test_Enum { public static void main(String[] args) { number z = number.zero; State_Enum state = State_Enum.normal; System.out.println(z.getValue()); System.out.println(z); System.out.println(number.one); switch (z) { case zero: System.out.println(0); break; case one: System.out.println(1); break; case two: System.out.println("2"); break; } //equals if (z.equals(number.one)) { System.out.println("equal!"); } else { System.out.println("unequal"); } //valueOf System.out.println(number.valueOf("zero")); //ordinal System.out.println(z.ordinal()); //the index of values System.out.println(state.toString()); state = state.ChangeState(); System.out.println(state.getState()); } }
Output
0 zero one 0 unequal zero 0 正常 停止
關(guān)于“java中枚舉類(lèi)型定義和重寫(xiě)枚舉的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。