枚举的实现
1.枚舉的概念
枚舉就是把幾個固定的常量列舉出來。枚舉本質上也是一個類,只不過這個類的對象是幾個固定的值,不能讓外界創建對象【因為其內部的構造方法私有】
2.定義一個枚舉類
public enum Week {//枚舉項表示Week類的對象,帶括號表示使用有參數構造方法, 不帶括號,表示使用空參數構造方法SUNDAY("星期日"), MONDAY("星期一"), TUESDAY,WEDNESDAY, THURSDAY, FRIDAY, SATURDAY; private String value; //星期幾//把構造方法私有化,目的就是不讓別人創建的對象private Week() {}//把構造方法私有化,目的就是不讓別人創建的對象private Week(String value) {this.value = value;}@Overridepublic String toString() {return "Week{" +"value='" + value + '\'' +'}';} }3.枚舉的方法
//枚舉類的方法 //任何自定義的枚舉類都繼承Enum類,該類提供了一些方法可以使用 public class Demo1 {public static void main(String[] args) {//string name()獲取枚舉項的名稱System.out.println(Week.Monday.name());//int ordinal()返回枚舉項在枚舉類中的索引值System.out.println(Week.Tuesday.ordinal());//int compareTo(E o)比較兩個枚舉項,返回的是索引值的差值System.out.println(Week.Monday.compareTo(Week.Saturday));//string toString()返回枚舉常量的名稱[不會使用,只為了打印的時候不是地址值存在]//Enum類已經復寫[獲取枚舉項的名稱]System.out.println(Week.Monday.toString());// static <T> T valueOf(Class<T> type , String name)// 獲取指定枚舉類中的指定名稱的枚舉值Week monday = Week.valueOf(Week.class, "Monday");System.out.println(monday);System.out.println(Week.Monday == monday);//values() 獲得所有的枚舉項,返回一個數組Week[] values = Week.values();} }打印結果: -------------------------------------------------------- Monday 1 -5 Monday Monday true4.枚舉和switch
寫一個switch語句,根據枚舉項做出選擇執行不同的代碼
public class Demo1 {public static void main(String[] args) {Week[] values = values();Random random = new Random();int index = random.nextInt(7);Week w = values[index];switch (w){case SUNDAY:System.out.println("星期天");break;case MONDAY:System.out.println("星期一");break;case TUESDAY:System.out.println("星期二");break;case WEDNESDAY:System.out.println("星期三");break;case THURSDAY:System.out.println("星期四");break;case FRIDAY:System.out.println("星期五");break;case SATURDAY:System.out.println("星期六");break;}} }打印結果: -------------------------------------------------------- 星期四總結
- 上一篇: 没注册的域名怎么查询(没注册的域名怎么查
- 下一篇: 注解的实现