jdk5.0新特性—— 枚举
為什么80%的碼農都做不了架構師?>>> ??
目錄
? ? 1、枚舉的簡介
? ? 2、枚舉的api的操作
? ? 3、項目中枚舉的實例
==========================================================
1、枚舉的簡介
? ? 什么是枚舉?
? ? ? ? 需要在一定的范圍內取值,這個值只能是這個范圍內中的任意一個。
? ? 現實場景:交通信號燈,有三種顏色,但是每次只能亮三種顏色里面的任意一個。
? ? 使用一個關鍵字 enum
? ? public enum Color3 {
? ? ? ? RED,GREEN,YELLOW;
? ? }
? ? 枚舉的構造方法是 private私有的.
? ? 特殊枚舉的操作(了解)
? ? 1)在枚舉類里面有構造方法
? ? ? ? --構造方法里面有參數,需要在每個實例上面都寫參數。
? ? 2)在枚舉類里面有抽象方法
? ? ? ? --在枚舉的每個實例里面都重寫這個抽象方法。
2、枚舉的api的操作
? ? name() :返回枚舉的名稱
? ? ordinal() :枚舉的下標,下標從0開始
? ? 還有兩個方法,都是這兩個方法不在api里面,編譯的時候生成兩個方法
? ? valueOf(String name): 轉換枚舉對象
? ? values(): 獲得所有枚舉對象數組
? ? 練習:枚舉對象、枚舉對象下標、枚舉對象名稱表示之間的轉換
? ? ? ? //知道枚舉的對象,得到枚舉名稱和下標
? ? ? ? public void test1() {
? ? ? ? ? ? //得到枚舉對象
? ? ? ? ? ? Color100 c100 = Color100.RED;
? ? ? ? ? ? //枚舉名稱
? ? ? ? ? ? String name = c100.name();
? ? ? ? ? ? //枚舉的下標
? ? ? ? ? ? int idx = c100.ordinal();
? ? ? ? ? ? System.out.println(name+" "+idx);
? ? ? ? }
? ? ===================================================
? ? ? ? //知道枚舉的名稱,得到枚舉的對象和下標
? ? ? ? public void test2() {
? ? ? ? ? ? //枚舉的名稱
? ? ? ? ? ? String name1 = "GREEN";
? ? ? ? ? ? //得到對象
? ? ? ? ? ? Color100 c1 = Color100.valueOf(name1);
? ? ? ? ? ? //枚舉下標
? ? ? ? ? ? int idx1 = c1.ordinal();
? ? ? ? ? ? System.out.println(idx1);
? ? ? ? }
? ? ===================================================
? ? ? ? //知道枚舉的下標,得到枚舉的對象和名稱
? ? ? ? public void test3() {
? ? ? ? ? ? //枚舉的下標
? ? ? ? ? ? int idx2 = 2;
? ? ? ? ? ? //獲得所有枚舉對象數組
? ? ? ? ? ? Color100[] cs = Color100.values();
? ? ? ? ? ? //根據下標得到對象
? ? ? ? ? ? Color100 c12 = cs[idx2];
? ? ? ? ? ? //得到枚舉的名稱
? ? ? ? ? ? String name = c12.name();
? ? ? ? ? ? System.out.println(name);
? ? ? ? }
3、項目中枚舉的實例
? ? public enum AddressType {
? ? ? ? SHI("市", 14),
? ? ? ? XIAN("縣", 15),
? ? ? ? QU("區", 16),
? ? ? ? XIANG_ZHEN_JIE_DAO("鄉鎮(街道)", 20),
? ? ? ? JIE_LU_XIANG_XIAO_QU("街路巷(小區)", 40),
? ? ? ? MEN_PAI("門牌", 100),
? ? ? ? MEN_PAI_FU_HAO("門牌附號", 101),
? ? ? ? LOU_ZHUANG_HAO("樓幢號", 102),
? ? ? ? GUOBIAO_QUXIAN("",321100),
? ? ? ? GUOBIAO_XIANGZHEN("",130000),
? ? ? ? GUOBIAO_HUSHI("",520000);
? ? ? ? private String mark ; //地址元素新增頁面combobox需要字段
? ? ? ? private int type ; //地址元素庫對應字段
? ? ? ? AddressType(String mark , int type){
? ? ? ? ? ? this.mark = mark ;
? ? ? ? ? ? this.type = type ;
? ? ? ? }
? ? ? ? public String getMark() {
? ? ? ? ? ? return mark;
? ? ? ? }
? ? ? ? public void setMark(String mark) {
? ? ? ? ? ? this.mark = mark;
? ? ? ? }
? ? ? ? public int getType() {
? ? ? ? ? ? return type;
? ? ? ? }
? ? ? ? public void setType(int type) {
? ? ? ? ? ? this.type = type;
? ? ? ? }
? ? }
? ? =====================================================
? ? 實例調用
? ? public class TestEnum {
? ? ? ? @Test
? ? ? ? public void testDemo(){
? ? ? ? ? ? String str = AddressType.SHI.getMark();
? ? ? ? ? ? int aaa = AddressType.SHI.getType();
? ? ? ? ? ? System.out.println(str+","+aaa);
? ? ? ? }
? ? }
---------------------?
?
轉載于:https://my.oschina.net/oszzq/blog/3017652
總結
以上是生活随笔為你收集整理的jdk5.0新特性—— 枚举的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bd3.2 Python高级
- 下一篇: 使用hexo yeele主题搭建个人博客