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編程枚舉類型定義和重寫枚舉的方法的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Java編程long數(shù)據(jù)類型的使用問題、java編程基礎之模仿用戶登錄代碼分享等,有什么問題可以隨時留言,小編會及時回復大家的。感謝朋友們對本站的支持!
相關文章
springboot整合xxl-job的實現(xiàn)示例
本文主要介紹了springboot整合xxl-job的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-06-06Java 實現(xiàn)倒計時功能(由秒計算天、小時、分鐘、秒)
最近做項目遇到這樣的需求,天、小時、分鐘、秒的數(shù)值都是隔開的,服務器端只返回一個時間戳長度,怎么實現(xiàn)這樣的功能呢?下面小編給大家?guī)砹薐ava 實現(xiàn)倒計時功能的方案,需要的朋友參考下吧2018-01-01使用TraceId在Spring Cloud中實現(xiàn)線上問題快速定位
在微服務架構中,服務間的互相調(diào)用使得問題定位變得復雜,在此背景下,TraceId為我們提供了一個在復雜環(huán)境中追蹤請求路徑和定位問題的工具,本文不僅介紹TraceId的基本概念,還將結合真實場景,為您展示如何在Spring Cloud中應用它2023-09-09