>[success] # 枚舉類型
1. **一個可被列舉的集合**,因為它是可被列舉的,使得它必須有一個可窮盡的范圍,例如四季,月份,方向等
>[danger] ##### 枚舉推到
* 第一一個類用來去指定某個某個變量聲明集合
~~~
import java.util.Properties;
public class EnumDirection {
// 定義枚舉變量
private String desc;
public String getDesc() {
return desc;
}
public EnumDirection(String desc) {
this.desc = desc;
}
public static void main(String[] args) {
// 使用枚舉
EnumDirection edUp = new EnumDirection("Up");
EnumDirection edDown = new EnumDirection("Down");
EnumDirection edLeft = new EnumDirection("Left");
EnumDirection edRight = new EnumDirection("Right");
System.out.println(edUp.getDesc());
System.out.println(edDown.getDesc());
System.out.println(edLeft.getDesc());
System.out.println(edRight.getDesc());
// TODO: 不足點 需要不停創建實例并且并么有約束性質,使用人還可以隨意定義
EnumDirection edCCCC = new EnumDirection("CCCC");
}
}
~~~
* 使用final static 等進行限制
~~~
public class EnumDirection {
// 定義枚舉變量
private String desc;
// 私有構造方法,此時構造方法只能內部使用
private EnumDirection(String desc) {
this.desc = desc;
}
// 2.聲明本類類型的引用指向本類類型的對象
public static final EnumDirection UP = new EnumDirection("Up");
public static final EnumDirection DOWN = new EnumDirection("Down");
public static final EnumDirection LEFT = new EnumDirection("Left");
public static final EnumDirection RIGHT = new EnumDirection("Right");
// 通過公有的get方法可以在本類的外部訪問該類成員變量的數值
public String getDesc() {
return desc;
}
}
~~~
~~~
public class App {
public static void main(String[] args) throws Exception {
EnumDirection ed = EnumDirection.UP;
System.out.println(ed.getDesc());
}
}
~~~
>[info] ## java 枚舉類型
1. java5 中引入了`enum` 關鍵字,定義枚舉類型
2. 枚舉值就是當前類的類型,也就是指向本類的對象,默認使用public static final關鍵字共同修飾,因此采用**枚舉類型.的方式調用**
3. 枚舉類可以自定義構造方法,但是構造方法的修飾符必須是private,默認也是**私有**的
>[danger] ##### 案例代碼
* 因為本質還是當前構造函數賦值,因此獲取時候還需要用變量接受,相比來說可以不用重復去書寫`public static final`
* 如果直接獲取是其本身
~~~
public enum EnumDirection {
// 代碼編譯后大概 public static final EnumDirection UP = new EnumDirection("UP");
UP("UP1"),
DOWN("DOWN"),
LEFT("LEFT"),
RIGHT("RIGHT"),
OTHER; // 沒有參數
private String desc;
private EnumDirection(String desc) {
this.desc = desc;
}
// 如果枚舉都是沒參數的不用寫構造函數默認構造函數沒參數
// 因為上面已經有有參數的構造函數因此要使用重載
private EnumDirection() {
}
// 獲取枚舉描述
public String getDesc() {
return this.desc;
}
}
~~~
* 使用
~~~
public class App {
public static void main(String[] args) {
EnumDirection UP = EnumDirection.UP;
System.out.println(UP.getDesc()); // UP1
System.out.println(UP); // UP
}
}
~~~
- windows -- 環境變量
- Vscode -- 編寫java
- 初始java
- java -- 關鍵字
- 編寫第一個java程序
- java -- 注釋
- 計算機存儲 -- 進制
- java -- 類型
- java -- 變量
- 數字類型
- 布爾類型
- 字符類型
- 類型轉換
- 雙等比較是什么
- java -- 運算符
- 算數運算符
- 字符串拼接
- 關系/比較運算符
- 自增減運算符
- 邏輯運算符
- 三目運算
- 賦值運算符
- 移位運算符
- 位運算符
- 運算符優先級
- java -- 流程控制語句
- if /else if /if -- 判斷
- switch case分支結構
- for -- 循環
- 用雙重for循環
- while -- 循環
- do while -- 循環
- 案例練習
- java -- 數組
- 數組的存儲
- 數組的增刪改查
- 數組的特點
- 數組案例
- 二維數組
- 數組的工具方法
- java -- 方法
- java -- 方法的重載
- java -- 方法的調用流程
- java -- 類方法傳參注意事項
- java -- 方法練習案例
- 對比 return break continue
- for each循環
- java -- 基礎練習
- java -- 面向對象
- java -- 創建類和對象
- java -- 訪問控制符
- java -- 類成員方法
- java -- 構造方法
- java -- this
- java -- 封裝
- java -- 對象內存圖
- java -- 創建對象案例
- java -- static
- java -- 繼承
- super -- 關鍵字
- java -- 構造塊和靜態代碼塊
- java -- 重寫
- java -- final
- java -- 多態
- java -- 抽象類
- java -- 接口
- 引用類型數據轉換
- 綜合案例
- java -- 內部類
- java -- 回調模式
- java -- 枚舉類型
- java -- switch 使用枚舉
- java -- 枚舉方法使用
- java -- 枚舉類實現接口
- java -- javaBean
- java -- package 包
- java -- import
- java -- 遞歸練習
- java -- 設計模式
- 單例模式
- java -- 注解
- java -- 元注解
- Java -- 核心類庫
- java -- 處理字符串
- Java -- String
- String -- 常用方法
- String -- 正則
- Java -- StringBuilder 和 StringBuffer
- 知識點
- Java -- StringJoiner 字符串拼接
- 練習題
- 字符串的總結
- Java -- 包裝類
- Integer
- Double
- Boolean
- Character
- java -- 集合類
- java -- util.Collection
- Iterator接口
- java -- util.List
- java -- ArrayList
- java -- util.Queue
- java -- util.Set
- java -- util.Map
- java -- util.Collections
- Java -- Math
- Java -- java.lang
- Java -- Object
- Java -- 獲取當前時間戳
- Java -- 異常
- Java -- java.util
- java -- Date
- java -- Calender
- Java -- java.text
- Java -- SimpleDateFormat
- Java -- java.time
- Java -- java.io
- java -- io.File
- java -- 泛型
- IDEA -- 用法