JDK新特性之枚举
??
創(chuàng)建枚舉需要使用關(guān)鍵字enum。 public enum Color {Red,Yellow,Blue,Blank,Green;//枚舉常量。被隱式聲明為Color的共有、靜態(tài)、final成員。//在Java語言中,這些常量是子類型的(self-typed)} package com.itheima.enum1;public class Demo1 {public static void main(String[] args) {//Color c=new Color();// 不能使用new實(shí)例化枚舉,會報(bào)錯(cuò)Color c;c = Color.Red;//賦值在Color枚舉中定義的值switch (c) {//枚舉可以用在switch中,case使用的常量必須與switch表達(dá)式使用的枚舉類型相同case Red:System.out.println("red");break;case Blank:System.out.println("blank");break;case Blue:System.out.println("blue");break;case Green:System.out.println("green");break;case Yellow:System.out.println("yellow");break;}} } package com.itheima.enum1;public class Demo2 {public static void main(String[] args) {//所有枚舉都包含兩個(gè)預(yù)定義方法:values()和valueOf()//values方法返回一個(gè)包含枚舉常量列表的數(shù)組Color[] colors=Color.values();for(Color c:colors){System.out.println(c);}System.out.println("-----------");//valueOf方法返回傳遞到參數(shù)str的字符串相對應(yīng)的枚舉常量Color col = Color.valueOf("Red");System.out.println(col);}}java枚舉是類類型。可以為枚舉提供構(gòu)造函數(shù)、添加實(shí)例變量和方法,甚至可以實(shí)現(xiàn)接口。枚舉有兩條限制:(1)枚舉不能繼承其他類。但是所有枚舉都自動繼承超類 java.lang.Enum(2)枚舉不能是超類 public enum Apple {Jonathan(10), GoldenDel(9), RedDel, Winesap(15), Cortland(8);//常量后面括號里的數(shù)字為構(gòu)造方法的參數(shù)private int price;Apple() {this.price = 0;}//RedDel沒有提供參數(shù),則會調(diào)動默認(rèn)構(gòu)造方法Apple(int price) {this.price = price;}public int getPrice() {return price;} } public class AppleDemo {public static void main(String[] args) {Apple a;a = Apple.Cortland;System.out.println(a + "---" + a.getPrice());//輸出Cortland的價(jià)格System.out.println(Apple.RedDel.getPrice());//輸出RedDel的價(jià)格,因調(diào)用的默認(rèn)方法,價(jià)格為初始化的0} }
總結(jié)