摘要:中的枚舉是一個類,所以枚舉也可一后構造函數和其他的方法只是枚舉繼承了類,所以它不能再繼承其它的類。如果給每個枚舉值指定屬性,則必須給枚舉類提供枚舉值屬性對應數據類型的構造方法。紅色藍色白色運行的結果為藍色
二、類 1、Enum 枚舉
java 語言所有枚舉類型的公共類;
枚舉用來替換使用常量表示列入顏色、方式、類別等數量有限,形式離散有表示明確的量;
枚舉是類型安全的,超出枚舉類型的返回,將會發生編譯時錯誤;
例:
使用常量來表示顏色:
public class Entity{ public static final int red = 1; public static final int white = 2; public static final int blue = 3; private int id; private int color; public Entity(int id, int color){ this.id = id; this.color = color; } //id與color的getter 和setter方法 ... }
實例化一個Entity對象時:
Entity entity = new Entity(); entity.setId(10); entity.setColor(1);
或者:
Entity entity = new Entity(); entity.setId(10); entity.setColor(Entity.red);
使用第一種方式,代碼的可讀性低,1到底代表的什么顏色,需要到Entity類中查看;
使用第二種方式,同樣需要去Entity類中查看代碼,才能知道怎么調用,參數要怎么傳。
使用枚舉來表示顏色
//Color.java package com.heisenberg.Learn; public enum Color { red,blue,white } //Entity.java package com.heisenberg.Learn; public class Entity { private Color color; private int id; public Color getColor() { return color; } public void setColor(Color color) { this.color = color; } public int getId() { return id; } public void setId(int id) { this.id = id; } public static void main(String[] args) { Entity entity = new Entity(); entity.setId(10); entity.setColor(Color.blue); } }
使用枚舉,代碼的可讀性提升了,并且在給color賦值時,只能選擇Color枚舉類中定義的三個選項,所以枚舉是類型安全的,如果使用了另外的值,將出現編譯錯誤。
java中的枚舉是一個類,所以枚舉也可一后構造函數和其他的方法;只是枚舉繼承了Enum類,所以它不能再繼承其它的類。
如果給每個枚舉值指定屬性,則必須給枚舉類提供枚舉值屬性對應數據類型的構造方法。如下,Color的每個枚舉值都帶有一個int和一個String類型的屬性,則必須提供Color(int value,String name)的構造方法;屬性的名稱不受限制,但是屬性的類型要一一對應。
//Color.java package com.heisenberg.Learn; public enum Color { red(1,"紅色"),blue(2,"藍色"),white(3,"白色"); int value; String name; private Color(int value, String name) { this.value = value; this.name = name; } public int getValue() { return value; } public void setValue(int value) { this.value = value; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
public static void main(String[] args) { Entity entity = new Entity(); entity.setId(10); entity.setColor(Color.blue); System.out.println(entity.getColor().getValue()); System.out.println(entity.getColor().getName()); }
運行的結果為:
2
藍色
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68323.html
摘要:一接口能夠被添加字符序列和字符的對象。對于多線程訪問而言沒必要是安全的。是值的一個可讀序列。此接口對許多不同種類的序列提供統一的只讀訪問。如果該對象小于等于或大于指定對象,則分別返回負整數零或正整數。 一、接口 1、Appendable 能夠被添加字符序列(CharSequence)和字符(char)的對象。CharSequence已知實現的類有:CharBuffer、Segment...
摘要:已知常用子接口實現該接口的類可以成為語句的目標唯一方法返回一個在一組類型的元素上進行迭代的迭代器。使用遍歷對象判斷是否存在下一個元素獲取下一個元素移除該元素為類專門創建的接口。 6 Iterable 已知常用子接口:Collection、List、Set; 實現該接口的類可以成為foreach 語句的目標 List list = new ArrayList(); for(List ...
摘要:一依賴剛開始少這個包創建索引失敗官方文檔并沒有給這個提示二開始之前的準備官方文檔連接操作所用到的實體類三關于索引的操作官方文檔新增索引索引名稱分片副本內容查詢指定索引索引名稱刪除索引四關于文檔的操作官方文檔創建文檔索引名稱前 一、Maven依賴 org.elasticsearch elasticsearch 7.1.0...
摘要:如果需要支持類的動態加載或需要對編譯后的字節碼文件進行解密操作等,就需要與類加載器打交道了。雙親委派模型,雙親委派模型,約定類加載器的加載機制。任何之類的字節碼都無法調用方法,因為該方法只能在類加載的過程中由調用。 jvm系列 垃圾回收基礎 JVM的編譯策略 GC的三大基礎算法 GC的三大高級算法 GC策略的評價指標 JVM信息查看 GC通用日志解讀 jvm的card table數據...
摘要:反射學習的靈魂我們從最初的,到面向對象部分,我們可以將代碼在計算機中經歷的階段分為三部分源代碼階段類對象階段運行時階段而我們知道,中一個類在源代碼階段,是存儲在硬盤中的,而編譯后,就已經被加載到內存中區,那么有沒有一種方法可以在這種情況下 反射:Web學習的靈魂 我們從最初的 javac -HelloWorld.java,到面向對象部分,我們可以將Java代碼在計算機中經歷的階段分為三...
閱讀 3170·2021-09-10 10:51
閱讀 3351·2021-08-31 09:38
閱讀 1639·2019-08-30 15:54
閱讀 3129·2019-08-29 17:22
閱讀 3214·2019-08-26 13:53
閱讀 1960·2019-08-26 11:59
閱讀 3283·2019-08-26 11:37
閱讀 3308·2019-08-26 10:47