零基礎學Java第十四天之枚舉

枚舉

1、理解

枚舉(Enumeration,通常簡寫為enum)在編程語言中是一種特殊的數據類型,它允許你為變量定義一組命名的常量。這些常量通常表示一組有限的值,比如一周的七天、顏色的集合或者狀態的集合等。枚舉類型的主要目的是提高代碼的可讀性和可維護性,同時減少錯誤的可能性。

2、定義

枚舉類型是通過關鍵字enum定義的,后面跟著枚舉類型的名稱和用逗號分隔的枚舉值列表。每個枚舉值都是該類型的一個實例,并且每個枚舉值都是唯一的。

3、特點

  • 枚舉類型的值是預定義的,并且是有限的。
  • 枚舉類型的值是常量,一旦定義后就不能修改。
  • 枚舉類型的值具有類型安全性,即它們是強類型的,不能與其他類型混淆。
  • 枚舉類型可以定義屬性和方法,就像普通的類一樣,但枚舉類型的構造器通常是私有的,以防止從外部創建枚舉實例。

4、使用

1、案例一季節類

package com.xx.enum02;public class Test01 {/*** 知識點:枚舉的引入* * 需求:編寫季節類(Season),該類只有四個對象(spring,summer,autumn,winter)*/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);}
}
package com.xx.enum02;//季節枚舉類
//注意:枚舉就是一個受限制的類(該類只能有固定的幾個對象,不能讓外界創建對象)
//注意:枚舉不能有繼承關系(顯示繼承)
//注意:自定義枚舉類隱式繼承Enum類 -- public class Season extends Enum{}
public enum Season{//注意:枚舉類的第一行必須聲明對象//spring;//底層實現 - public static final Season spring = new Season();//spring();//底層實現 - public static final Season spring = new Season();spring("春天","春雨綿綿"),//底層實現 - public static final Season spring = new Season("春天","春雨綿綿");summer("夏天","烈日炎炎"),//底層實現 - public static final Season spring = new Season("夏天","烈日炎炎");autumn("秋天","碩果累      累"),//底層實現 - public static final Season spring = new Season("秋天","碩果累累");winter("冬天","白雪皚皚");//底層實現 - public static final Season spring = new Season("冬天","白雪皚皚");private String name;private String info;//注意:枚舉類的構造方法使用private修飾private Season() {}private Season(String name, String info) {this.name = name;this.info = info;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getInfo() {return info;}public void setInfo(String info) {this.info = info;}@Overridepublic String toString() {return name + " -- " + info;}
}

2、案例二信號機

package com.xx.enum06;//信號燈
public enum Signal {RED, YELLOW, GREEN;
}
package com.xx.enum06;import java.util.Scanner;public class Test01 {/*** 知識點:枚舉案例 之 狀態機*/public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("請選擇信號燈:RED, YELLOW, GREEN");String str = scan.next();Signal signal = Signal.valueOf(str);String trafficInstruct = getTrafficInstruct(signal);System.out.println(trafficInstruct);scan.close();}public static String getTrafficInstruct(Signal signal) {String trafficInstruct = "信號燈故障";switch (signal) {case RED:trafficInstruct = "紅燈停";break;case YELLOW:trafficInstruct = "黃燈請注意";break;case GREEN:trafficInstruct = "綠燈行";break;}return trafficInstruct;}
}

3、案例三錯誤碼

package com.xx.enum07;public enum AddCode {ERR01(-1,"添加失敗 - 學生信息不合法"),ERR02(-2,"添加失敗 - 沒有該學生"),OK(1,"添加成功");private int code;private String message;private AddCode(int code, String message) {this.code = code;this.message = message;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}@Overridepublic String toString() {return code + " -- " + message;}
}
package com.xx.enum07;public class Test01 {/*** 知識點:枚舉案例 之 錯誤碼*/public static void main(String[] args) {System.out.println(AddCode.ERR01);System.out.println(AddCode.ERR02);System.out.println(AddCode.OK);}
}

4、案例四 組織枚舉

package com.qf.enum08;public interface Code {enum AddCode {ERR01(-1,"添加失敗 - 學生信息不合法"),ERR02(-2,"添加失敗 - 有重復學生"),OK(1,"添加成功");private int code;private String message;private AddCode(int code, String message) {this.code = code;this.message = message;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}@Overridepublic String toString() {return code + " -- " + message;}}enum RemoveCode {ERR01(-1,"刪除失敗 - 學生信息不合法"),ERR02(-2,"刪除失敗 - 沒有該學生"),OK(1,"刪除成功");private int code;private String message;private RemoveCode(int code, String message) {this.code = code;this.message = message;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}@Overridepublic String toString() {return code + " -- " + message;}}enum UpdateCode {ERR01(-1,"修改失敗 - 學生信息不合法"),ERR02(-2,"修改失敗 - 沒有該學生"),ERR03(-3,"修改失敗 - 修改數據不合法"),ERR04(-4,"修改失敗 - 目標班級上有學生"),ERR05(-5,"修改失敗 - 目標學號上有學生"),OK(1,"修改成功");private int code;private String message;private UpdateCode(int code, String message) {this.code = code;this.message = message;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}@Overridepublic String toString() {return code + " -- " + message;}}}
package com.qf.enum08;public class Test01 {/*** 知識點:枚舉案例 之 組織枚舉* * 應用場景:可以將一個一個的錯誤碼使用類或接口組織在一起* * 注意:* 		使用類組織枚舉,枚舉默認使用static修飾* 		使用接口組織枚舉,枚舉默認使用public static修飾* 經驗:使用接口組織眾多枚舉*/public static void main(String[] args) {System.out.println(Code.AddCode.ERR01);}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/12938.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12938.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12938.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

es 分詞器(五)之elasticsearch-analysis-jieba 8.7.0

es 分詞器(五)之elasticsearch-analysis-jieba 8.7.0 今天咱們就來講一下es jieba 8.7.0 分詞器的實現,以及8.x其它版本的實現方式,如果想直接使用es 結巴8.x版本,請直接修改pom文件的elasticsearch.version版本號即可…

再談畢業論文設計投機取巧之IVR自動語音服務系統設計(信息與通信工程專業A+其實不難)

目錄 舉個IVR例子格局打開,萬物皆能IVR - 把《民法典》搬上IVR IVR系統其實可鹽可甜。還能可圈可點。 戎馬一生,歸來依然IVR。 舉個IVR例子 以下是IVR系統的一個例子。 當您撥打電話進入IVR系統。 首先檢驗是否為工作時間。 如是,您將被送入…

基于51單片機的自動澆花器電路

一、系統概述 自動澆水灌溉系統設計方案,以AT89C51單片機為控制核心,采用模塊化的設計方法。 組成部分為:5V供電模塊、土壤濕度傳感器模塊、ADC0832模數轉換模塊、水泵控制模塊、按鍵輸入模塊、LCD顯示模塊和聲光報警模塊,結構如…

垃圾分類管理系統java項目

文章目錄 垃圾分類管理系統一、項目演示二、項目介紹三、系統部分功能截圖四、部分代碼展示五、底部獲取項目(9.9¥帶走) 垃圾分類管理系統 一、項目演示 垃圾分類管理系統 二、項目介紹 系統角色:管理員、用戶 1、登錄、注冊功能…

機器人非線性系統反饋線性化與解耦

機器人非線性系統的反饋線性化和解耦是控制理論中的兩個重要概念,它們分別用于簡化系統分析和設計過程,提高控制系統的性能。 首先,反饋線性化是一種將非線性系統轉化為線性系統的技術。在機器人控制中,由于機器人本身是一個強耦…

?python使用selenium進行Web自動化測試?

什么是selenium Selenium 是 ThoughtWorks 提供的一個強大的基于瀏覽器的 Selenium 是一個用于 Web 應用程序測試的工具,測試直接自動運行在瀏覽器中,就像真正的用戶在手工操作一樣。支持的瀏覽器包括 IE、Chrome 和 Firefox 等。這個工具的主要功能包…

2024042001-計算機網絡 - 物理層

計算機網絡 - 物理層 計算機網絡 - 物理層 通信方式帶通調制 通信方式 根據信息在傳輸線上的傳送方向,分為以下三種通信方式: 單工通信:單向傳輸半雙工通信:雙向交替傳輸全雙工通信:雙向同時傳輸 帶通調制 模擬信號…

C++基礎——繼承(下)

一、繼承與靜態成員 基類定義了static 靜態成員,則整個繼承體系里面只有一個這樣的成員。無論派生出多少個子 類,都只有一個 static 成員實例 。 class person { public:person(const char* name "lisi"):_name(name){} public:string _name;…

那些年我與c++的叫板(一)--string類自實現

引子:我們學習了c中的string類,那我們能不能像以前數據結構一樣自己實現string類呢?以下是cplusplus下的string類,我們參考參考! 廢話不多說,直接代碼實現:(注意函數之間的復用&…

Nacos+GateWay 搭建微服務架構

文章目錄 1.當前項目架構分析1.請求多個模塊的方式1.請求renren-fast模塊開發環境生產環境 2.請求sunliving-commodity模塊1.使用環境變量資源路徑的方式2.開發環境 dev.env.js3.生產環境 prod.env.js 3.文件上傳請求 sunliving-service模塊1.請求后端接口(開發環境…

當服務實例出現故障時,Nacos如何處理?

當服務實例出現故障時,Nacos的應對策略 在微服務架構日益盛行的今天,服務之間的穩定性與可靠性成為了我們架構師們不得不面對的重要課題。尤其是在面對服務實例出現故障時,如何確保整個系統的穩定運行,成為了我們首要考慮的問題。…

匯聚榮科技:拼多多上架商品后需要做頁面推廣嗎?

在電商平臺上,商品的曝光率和銷量往往成正比。那么,當您在拼多多上架了新品,是不是就意味著坐等訂單呢?答案顯然是否定的。商品一旦上架,接下來需要做的就是通過有效的頁面推廣來增加商品的可見度,吸引潛在買家的注意…

在亞馬遜上賣燈具需要什么認證,亞馬遜燈飾產品需要審核與認證嗎

LED燈具在亞馬遜美國站銷售,需要有UL認證或者UL報告、FCC,如果是帶消毒滅菌的燈,需要做EPA,歐洲站,日本站,認證只需要CE和ROHSR認證。 UL認證:本認證主要針對充電器、移動電源、手機電池、燈具…

Rust的NLL特性:讓生命周期管理更靈活

Rust的NLL特性:讓生命周期管理更靈活 Rust語言以其獨特的內存安全和并發性能受到開發者的青睞。而在Rust中,一個關鍵的概念就是“生命周期”。為了進一步優化生命周期的管理和借用檢查,Rust引入了NLL(Non-Lexical Lifetime&#…

html基礎(全)

html簡介 目錄 什么是網頁 什么是 HTML 常用瀏覽器 WebE標準的構成 基本語法概述 第一個HTML頁面 文檔類型聲明標簽 lang 語言種類 字符集 標題標簽 段落和換行標簽 文本格式化標簽 div和span標簽 圖像標簽和路徑 超鏈接標簽 表格的主要作用 表頭單元格標簽 列…

純血鴻蒙APP實戰開發——Web獲取相機拍照圖片案例

介紹 本示例介紹如何在HTML頁面中拉起原生相機進行拍照,并獲取返回的圖片。 效果預覽圖 使用說明 點擊HTML頁面中的選擇文件按鈕,拉起原生相機進行拍照。完成拍照后,將圖片在HTML的img標簽中顯示。 實現思路 添加Web組件,設置…

【SpringBoot】SpringBoot整合jasypt進行重要數據加密

📝個人主頁:哈__ 期待您的關注 目錄 📕jasypt簡介 🔥SpringBoot使用jasypt 📂創建我需要的數據庫文件 📕引入依賴 🔓配置數據庫文件(先不進行加密) 🌙創…

Anaconda安裝-超詳細版(2024)

掃盲:先裝Python還是先裝anaconda? 安裝anaconda即可,不需要單獨裝python anaconda 是一個python的發行版,包括了python和很多常見的軟件庫, 和一個包管理器conda。 一、下載Anaconda 安裝包(官網和國內鏡像資源) …

【深度學習】SDXL中的Offset Noise,Diffusion with Offset Noise,帶偏移噪聲的擴散

https://www.crosslabs.org//blog/diffusion-with-offset-noise 帶有偏移噪聲的擴散 針對修改后的噪聲進行微調,使得穩定擴散能夠輕松生成非常暗或非常亮的圖像。 作者:尼古拉斯古藤伯格 | 2023年1月30日 馬里奧兄弟使用穩定擴散挖掘隧道。左圖顯示了未…