java編程枚舉類型那些事!枚舉類型定義和重寫枚舉的方法
什么是枚舉類型
枚舉類型(Enumerated Type) 很早就出現(xiàn)在編程語言中,它被用來將一組類似的值包含到一種類型當(dāng)中。
而這種枚舉類型的名稱則會被定義成獨(dú)一無二的類型描述符,在這一點(diǎn)上和常量的定義相似。不過相比較常量類型,枚舉類型可以為申明的變量提供更大的取值范圍。
簡單的枚舉類型定義
假如你希望創(chuàng)建一個顏色庫,你可以這樣定義枚舉類型
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
}
定制枚舉類型
在C/C++中,我們可以這樣使用枚舉變量
enum color {red,green};
enum color a = 1;// a is green
在Java中定義枚舉類型的值
enum color {
red(1),green(2);
private final int number;
color(int i) {
this.number = i;
}
public getValue() {
return this.number;
}
}
然后使用 T.getValue() 便可獲取綁定的值
重寫枚舉的方法
枚舉類給我們提供的方法有,具體可以查看Enum.java
name, toString, valueOf //獲取名字 equals //比較 ordinal //獲取位置
實(shí)現(xiàn)接口
所有的枚舉都繼承自java.lang.Enum類。
由于Java 不支持多繼承,所以枚舉對象不能再繼承其他類,但是可以實(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 正常 停止
總結(jié)
以上就是本文關(guān)于java編程枚舉類型定義和重寫枚舉的方法的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Java編程long數(shù)據(jù)類型的使用問題、java編程基礎(chǔ)之模仿用戶登錄代碼分享等,有什么問題可以隨時留言,小編會及時回復(fù)大家的。感謝朋友們對本站的支持!
欄 目:Java編程
本文標(biāo)題:java編程枚舉類型那些事!枚舉類型定義和重寫枚舉的方法
本文地址:http://www.jygsgssxh.com/a1/Javabiancheng/8437.html
您可能感興趣的文章
- 01-10Java咖啡館(1)——嘆咖啡
- 01-10Java Socket編程(三) 服務(wù)器Sockets
- 01-10Java進(jìn)階:Struts多模塊的技巧
- 01-10Java Socket編程(一) Socket傳輸模式
- 01-10Java Socket編程(二) Java面向連接的類
- 01-10Java運(yùn)行時多態(tài)性的實(shí)現(xiàn)
- 01-10Java經(jīng)驗(yàn)點(diǎn)滴:處理沒有被捕獲的異常
- 01-10Java Socket編程(四) 重復(fù)和并發(fā)服務(wù)器
- 01-10Java中的浮點(diǎn)數(shù)分析
- 01-10面向?qū)ο缶幊?Java中的抽象數(shù)據(jù)類型


閱讀排行
本欄相關(guān)
- 01-10Java咖啡館(1)——嘆咖啡
- 01-10JVM的垃圾回收機(jī)制詳解和調(diào)優(yōu)
- 01-10Java Socket編程(三) 服務(wù)器Sockets
- 01-10Java進(jìn)階:Struts多模塊的技巧
- 01-10J2SE 1.5版本的新特性一覽
- 01-10Java Socket編程(一) Socket傳輸模式
- 01-10Java運(yùn)行時多態(tài)性的實(shí)現(xiàn)
- 01-10Java Socket編程(二) Java面向連接的類
- 01-10Java Socket編程(四) 重復(fù)和并發(fā)服務(wù)
- 01-10Java經(jīng)驗(yàn)點(diǎn)滴:處理沒有被捕獲的異常
隨機(jī)閱讀
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 04-02jquery與jsp,用jquery
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文


