Java實例講解枚舉enum的實現(xiàn)
一.枚舉介紹
1.枚舉是一組常量的集合
2.理解:美劇屬于一種特殊的類,里面只包含一組有限的特定的對象
1.自定義枚舉實現(xiàn)
1.不需要提供Set方法,枚舉對象值通常為只讀。
2.對枚舉對象/屬性使用final和static關(guān)鍵字修飾,實現(xiàn)底層優(yōu)化
3.枚舉對象名通常使用全部大寫,常量的命名規(guī)范
4.枚舉·對象根據(jù)需要,可以有一到多個屬性
(1)示例
package com.demo;
import javax.sound.midi.Soundbank;
/**
* @version 1.0
* @auther Demo龍
*/
public class Enum01 {
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);
}
}
//演示自定義枚舉實現(xiàn)
class Season{
private String name;
private String desc;//描述特性
//1.將構(gòu)造器私有化,目的防止直接new出來
private Season(String name, String desc) {
this.name = name;
this.desc = desc;
}
//2.去掉set方法,只能讀取,不能修改屬性
public String getName() {
return name;
}
public String getDesc() {
return desc;
}
//3.在season內(nèi)部創(chuàng)建固定的對象
//定義了四個對象
// public static Season SPRING=new Season("春天","溫暖");
// public static Season SUMMER=new Season("夏天","炎熱");
// public static Season AUTUMN=new Season("秋天","涼爽");
// public static Season WINTER=new Season("冬天","寒冷");
//最終優(yōu)化,加入final
public static final Season SPRING=new Season("春天","溫暖");
public static final Season SUMMER=new Season("夏天","炎熱");
public static final Season AUTUMN=new Season("秋天","涼爽");
public static final Season WINTER=new Season("冬天","寒冷");
//重寫toString方法
@Override
public String toString() {
return "Season{" +
"name='" + name + '\'' +
", desc='" + desc + '\'' +
'}';
}
}(2)測試結(jié)果

2.enum關(guān)鍵字實現(xiàn)枚舉
如果使用enum關(guān)鍵字來實現(xiàn)枚舉類
1.使用關(guān)鍵字enum替換class
2.public static final Season02 SPRING=new Season02(“春天”,“溫暖”);可替換為 SPRING(“春天”,“溫暖”),//解讀:常量名(實參列表)
3.如果有多個常量使用逗號間隔即可
4.如果使用enum關(guān)鍵字實現(xiàn)枚舉,要求將定義的常量對象寫下前面
(1)示例
package com.demo;
/**
* @version 1.0
* @auther Demo龍
*/
public class Enum02 {
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關(guān)鍵字來實現(xiàn)枚舉類
enum Season02{
//如果使用enum關(guān)鍵字來實現(xiàn)枚舉類
//1.使用關(guān)鍵字enum替換class
//2.public static final Season02 SPRING=new Season02("春天","溫暖");可替換為
SPRING("春天","溫暖"),//解讀:常量名(實參列表)
//3.如果有多個常量使用逗號間隔即可
SUMMER("夏天","炎熱"),
AUTUMN("秋天","涼爽"), WINTER("冬天","寒冷");
//4.如果使用enum關(guān)鍵字實現(xiàn)枚舉,要求將定義的常量對象寫下前面
private String name;
private String desc;//描述特性
//1.將構(gòu)造器私有化,目的防止直接new出來
private Season02(String name, String desc) {
this.name = name;
this.desc = desc;
}
//2.去掉set方法,只能讀取,不能修改屬性
public String getName() {
return name;
}
public String getDesc() {
return desc;
}
//3.在season內(nèi)部創(chuàng)建固定的對象
//定義了四個對象
// public static Season SPRING=new Season("春天","溫暖");
// public static Season SUMMER=new Season("夏天","炎熱");
// public static Season AUTUMN=new Season("秋天","涼爽");
// public static Season WINTER=new Season("冬天","寒冷");
//最終優(yōu)化,加入final
// public static final Season02 SPRING=new Season02("春天","溫暖");
// public static final Season02 SUMMER=new Season02("夏天","炎熱");
// public static final Season02 AUTUMN=new Season02("秋天","涼爽");
// public static final Season02 WINTER=new Season02("冬天","寒冷");
//重寫toString方法
@Override
public String toString() {
return "Season{" +
"name='" + name + '\'' +
", desc='" + desc + '\'' +
'}';
}
}(2)測試結(jié)果

3.enum關(guān)鍵字注意事項
1.當我i們使用enum關(guān)鍵字開發(fā)一個枚舉類時,默認會繼承Enum類
2.傳統(tǒng)的public static final Season02 SPRING=new Season02("春天","溫暖");,這里要知道他調(diào)用的是哪個構(gòu)造器
3.如果使用無參構(gòu)造器創(chuàng)建枚舉對象,則實參列表和小括號都可以省略.
4.當有多個枚舉對象時,使用逗號間隔,最后有一個分號結(jié)尾
5.枚舉對象必須放在枚舉類的行首
(1)示例
package com.demo;
/**
* @version 1.0
* @auther Demo龍
*/
public class Enum02 {
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關(guān)鍵字來實現(xiàn)枚舉類
enum Season02{
//如果使用enum關(guān)鍵字來實現(xiàn)枚舉類
//1.使用關(guān)鍵字enum替換class
//2.public static final Season02 SPRING=new Season02("春天","溫暖");可替換為
SPRING("春天","溫暖"),//解讀:常量名(實參列表)
//3.如果有多個常量使用逗號間隔即可
SUMMER("夏天","炎熱"),
AUTUMN("秋天","涼爽"), WINTER("冬天","寒冷"),
//3.如果使用無參構(gòu)造器創(chuàng)建枚舉對象,則實參列表和小括號都可以省略.兩種寫法
HAHA,//調(diào)用無參構(gòu)造器
HAHAHA();//調(diào)用無參構(gòu)造器
//4.如果使用enum關(guān)鍵字實現(xiàn)枚舉,要求將定義的常量對象寫下前面
private String name;
private String desc;//描述特性
//1.將構(gòu)造器私有化,目的防止直接new出來
private Season02(String name, String desc) {
this.name = name;
this.desc = desc;
}
private Season02() {
//無參構(gòu)造器
}
//2.去掉set方法,只能讀取,不能修改屬性
public String getName() {
return name;
}
public String getDesc() {
return desc;
}
//3.在season內(nèi)部創(chuàng)建固定的對象
//定義了四個對象
// public static Season SPRING=new Season("春天","溫暖");
// public static Season SUMMER=new Season("夏天","炎熱");
// public static Season AUTUMN=new Season("秋天","涼爽");
// public static Season WINTER=new Season("冬天","寒冷");
//最終優(yōu)化,加入final
// public static final Season02 SPRING=new Season02("春天","溫暖");
// public static final Season02 SUMMER=new Season02("夏天","炎熱");
// public static final Season02 AUTUMN=new Season02("秋天","涼爽");
// public static final Season02 WINTER=new Season02("冬天","寒冷");
//重寫toString方法
@Override
public String toString() {
return "Season{" +
"name='" + name + '\'' +
", desc='" + desc + '\'' +
'}';
}
}到此這篇關(guān)于Java實例講解枚舉enum的實現(xiàn)的文章就介紹到這了,更多相關(guān)Java枚舉內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中的動態(tài)數(shù)組和棧Vector Stack使用區(qū)別介紹
這篇文章主要為大家介紹了Java中的動態(tài)數(shù)組和棧Vector Stack使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10
springboot項目整合druid數(shù)據(jù)庫連接池的實現(xiàn)
這篇文章主要介紹了springboot項目整合druid數(shù)據(jù)庫連接池的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04
springboot如何讀取配置文件(application.yml)中的屬性值
本篇文章主要介紹了springboot如何讀取配置文件(application.yml)中的屬性值,具有一定的參考價值,有興趣的小伙伴可以了解一下2017-04-04
詳解Springboot應用中設(shè)置Cookie的SameSite屬性
Chrome 51 開始,瀏覽器的 Cookie 新增加了一個SameSite屬性,用來防止 CSRF 攻擊和用戶追蹤。今天通過本文給大家介紹Springboot應用中設(shè)置Cookie的SameSite屬性,感興趣的朋友一起看看吧2022-01-01
SpringCloud Config連接git與數(shù)據(jù)庫流程分析講解
springcloud config是一個解決分布式系統(tǒng)的配置管理方案。它包含了 client和server兩個部分,server端提供配置文件的存儲、以接口的形式將配置文件的內(nèi)容提供出去,client端通過接口獲取數(shù)據(jù)、并依據(jù)此數(shù)據(jù)初始化自己的應用2022-12-12
使用HttpSessionListener監(jiān)聽器實戰(zhàn)
這篇文章主要介紹了使用HttpSessionListener監(jiān)聽器實戰(zhàn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
?Java數(shù)據(jù)結(jié)構(gòu)的十大排序
這篇文章主要介紹了?Java數(shù)據(jù)結(jié)構(gòu)的十大排序,排序算法分為比較類排序和非比較類排序,具體的內(nèi)容,需要的朋友參考下面思維導圖及文章介紹,希望對你有所幫助2022-01-01

