Java淺析枚舉類的使用
概念:有enum關(guān)鍵字修飾的類,成為枚舉類
1、枚舉規(guī)則
- 枚舉類的對象可以有類里面定義,不支持重新new出來,
- 枚舉類有構(gòu)造函數(shù),其他的類都一樣,可以有多個(gè)方法
- 枚舉類的構(gòu)造方法必須是private私有的,成員變量都公有私有都可以
原因:枚舉類的構(gòu)造方法只能在本類中被調(diào)用,因?yàn)椴恢С制渌麃韥韓ew對象,所以自然構(gòu)造函數(shù)為private
代碼示例:
package com.meijulei;
//枚舉類
public enum Cat {
A("小明",12),B("小花",22),C("小紅",23),D("小藍(lán)",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);
}
}
//調(diào)用
package com.meijulei;
import com.meijulei.Cat;
public class Test {
public static void main(String[] args) {
Cat a=Cat.A;
a.m1();
}
}2、枚舉的個(gè)數(shù)
注意:枚舉的個(gè)數(shù)講的是堆中的個(gè)數(shù),就是在枚舉類里面所聲明的對象的個(gè)數(shù)

3、枚舉類中常用函數(shù)
**Cat.C.ordinal()**函數(shù),計(jì)算出該對象在枚舉類中第幾個(gè)對象(從0開始計(jì)算)Cat.C.compareTo(Cat.E) 比較兩個(gè)對象的差值,前一個(gè)減去后一個(gè),
A("小明",12),B("小花",22),C("小紅",23),D("小藍(lán)",30),E("小綠",20),F("小黃",32);
System.out.println(Cat.E.ordinal());
System.out.println(Cat.C.compareTo(Cat.E));
//輸出
//4
//-2
4、實(shí)現(xiàn)枚舉類
接下來我們來看一個(gè)一個(gè)簡單的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("春天","萬物復(fù)蘇"),
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='萬物復(fù)蘇'}
Season{name='夏天', desc='烈日炎炎'}
Season{name='秋天', desc='碩果累累'}
Season{name='冬天', desc='寒冷刺骨'}
5、枚舉類的使用注意事項(xiàng)
當(dāng)我們使用enum關(guān)鍵字來開發(fā)一個(gè)枚舉類的時(shí)候,默認(rèn)會繼承Eunm類,而且是一個(gè)final修飾的類
如果我們使用的是無參構(gòu)造器,則枚舉中可以直接省略小括號
// 枚舉定義的常量對象必須在最前面
SPRING("春天", "萬物復(fù)蘇"),
SUMMER("夏天", "烈日炎炎"),
AUTUMN("秋天", "碩果累累"),
WINTER("冬天", "寒冷刺骨"),
Other, Shit;
Season() {
}
private Season(String name, String desc) {
this.name = name;
this.desc = desc;
}
到此這篇關(guān)于Java淺析枚舉類的使用的文章就介紹到這了,更多相關(guān)Java枚舉類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Spring + Spring MVC + Mybatis 高性能web構(gòu)建實(shí)例詳解
這篇文章主要介紹了基于Spring + Spring MVC + Mybatis 高性能web構(gòu)建實(shí)例詳解,需要的朋友可以參考下2017-04-04
SpringCloud?Stream?整合RabbitMQ的基本步驟
這篇文章主要介紹了SpringCloud?Stream?整合RabbitMQ的基本步驟,從項(xiàng)目介紹到生產(chǎn)者結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
Java多線程Callable接口實(shí)現(xiàn)代碼示例
相信大家對Java編程中如何創(chuàng)建線程已經(jīng)不陌生了,這篇文章就向朋友們介紹實(shí)現(xiàn)callable接口,具體實(shí)例詳見正文。2017-10-10
hibernate一對多關(guān)聯(lián)映射學(xué)習(xí)小結(jié)
這篇文章主要介紹了hibernate一對多關(guān)聯(lián)映射學(xué)習(xí)小結(jié),需要的朋友可以參考下2017-09-09
基數(shù)排序簡介及Java語言實(shí)現(xiàn)
這篇文章主要介紹了基數(shù)排序簡介及Java語言實(shí)現(xiàn),涉及基數(shù)排序的基本思想簡單介紹和桶排序的分析,以及基數(shù)排序的Java實(shí)現(xiàn),具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-11-11

