Java淺析枚舉類的使用
概念:有enum關鍵字修飾的類,成為枚舉類
1、枚舉規(guī)則
- 枚舉類的對象可以有類里面定義,不支持重新new出來,
- 枚舉類有構造函數(shù),其他的類都一樣,可以有多個方法
- 枚舉類的構造方法必須是private私有的,成員變量都公有私有都可以
原因:枚舉類的構造方法只能在本類中被調用,因為不支持其他來來new對象,所以自然構造函數(shù)為private
代碼示例:
package com.meijulei; //枚舉類 public enum Cat { A("小明",12),B("小花",22),C("小紅",23),D("小藍",30),E("小綠",20),F("小黃",32); public String name; private int age; private Cat(){ } private Cat(String a,int b){ name=a; age=b; } public void m1(){ System.out.println("姓名為:"+name+",年齡為:"+age); } } //調用 package com.meijulei; import com.meijulei.Cat; public class Test { public static void main(String[] args) { Cat a=Cat.A; a.m1(); } }
2、枚舉的個數(shù)
注意:枚舉的個數(shù)講的是堆中的個數(shù),就是在枚舉類里面所聲明的對象的個數(shù)
3、枚舉類中常用函數(shù)
**Cat.C.ordinal()**函數(shù),計算出該對象在枚舉類中第幾個對象(從0開始計算)Cat.C.compareTo(Cat.E) 比較兩個對象的差值,前一個減去后一個,
A("小明",12),B("小花",22),C("小紅",23),D("小藍",30),E("小綠",20),F("小黃",32); System.out.println(Cat.E.ordinal()); System.out.println(Cat.C.compareTo(Cat.E));
//輸出
//4
//-2
4、實現(xiàn)枚舉類
接下來我們來看一個一個簡單的DEMO示例:
/** * java枚舉 */ public class Enum { public static void main(String[] args) { System.out.println(Season.SPRING); System.out.println(Season.SUMMER); System.out.println(Season.AUTUMN); System.out.println(Season.WINTER); } } // 定義的枚舉類 enum Season { // 枚舉定義的常量對象必須在最前面 SPRING("春天","萬物復蘇"), SUMMER("夏天","烈日炎炎"), AUTUMN("秋天","碩果累累"), WINTER("冬天","寒冷刺骨"); private String name; private String desc; private Season(String name, String desc) { this.name = name; this.desc = desc; } public String getName() { return name; } public String getDesc() { return desc; } @Override public String toString() { return "Season{" + "name='" + name + '\'' + ", desc='" + desc + '\'' + '}'; } }
輸出:
Season{name='春天', desc='萬物復蘇'}
Season{name='夏天', desc='烈日炎炎'}
Season{name='秋天', desc='碩果累累'}
Season{name='冬天', desc='寒冷刺骨'}
5、枚舉類的使用注意事項
當我們使用enum關鍵字來開發(fā)一個枚舉類的時候,默認會繼承Eunm類,而且是一個final修飾的類
如果我們使用的是無參構造器,則枚舉中可以直接省略小括號
// 枚舉定義的常量對象必須在最前面 SPRING("春天", "萬物復蘇"), SUMMER("夏天", "烈日炎炎"), AUTUMN("秋天", "碩果累累"), WINTER("冬天", "寒冷刺骨"), Other, Shit; Season() { } private Season(String name, String desc) { this.name = name; this.desc = desc; }
到此這篇關于Java淺析枚舉類的使用的文章就介紹到這了,更多相關Java枚舉類內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
基于Spring + Spring MVC + Mybatis 高性能web構建實例詳解
這篇文章主要介紹了基于Spring + Spring MVC + Mybatis 高性能web構建實例詳解,需要的朋友可以參考下2017-04-04SpringCloud?Stream?整合RabbitMQ的基本步驟
這篇文章主要介紹了SpringCloud?Stream?整合RabbitMQ的基本步驟,從項目介紹到生產者結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03