java編程枚舉類型那些事!枚舉類型定義和重寫枚舉的方法
什么是枚舉類型
枚舉類型(Enumerated Type) 很早就出現(xià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 //獲取位置
實現(xiàn)接口
所有的枚舉都繼承自java.lang.Enum類。
由于Java 不支持多繼承,所以枚舉對象不能再繼承其他類,但是可以實現(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 正常 停止
總結
以上就是本文關于java編程枚舉類型定義和重寫枚舉的方法的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Java編程long數(shù)據(jù)類型的使用問題、java編程基礎之模仿用戶登錄代碼分享等,有什么問題可以隨時留言,小編會及時回復大家的。感謝朋友們對本站的支持!
相關文章
Java Swing組件單選框JRadioButton用法示例
這篇文章主要介紹了Java Swing組件單選框JRadioButton用法,結合具體實例形式分析了Swing單選框JRadioButton的使用方法及相關操作注意事項,需要的朋友可以參考下2017-11-11
feign開啟日志Logger.Level?feignLoggerLevel()中Level爆紅的解決
這篇文章主要介紹了feign開啟日志Logger.Level?feignLoggerLevel()中Level爆紅的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
springboot使用logback文件查看錯誤日志過程詳解
這篇文章主要介紹了springboot使用logback文件查看錯誤日志過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-09-09
springboot多數(shù)據(jù)源配合docker部署mysql主從實現(xiàn)讀寫分離效果
這篇文章主要介紹了springboot多數(shù)據(jù)源配合docker部署mysql主從實現(xiàn)讀寫分離,通過使用docker獲取mysql鏡像,具體內容詳情跟隨小編一起看看吧2021-09-09
java面向對象:API(接口)與集合(ArrayList)
這篇文章主要介紹了Java語言面向對象的API與集合,還是十分不錯的,這里給大家分享下,需要的朋友可以參考,希望能夠給你帶來幫助2021-08-08
關于Spring MVC框架中攔截器Interceptor的使用解讀
這篇文章主要介紹了關于Spring MVC框架中攔截器Interceptor的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07

