枚舉
包含一組常量合法的數據,不能創建枚舉實例,也不能進行擴展。
1 package com.jtfr.demo; 2 3 public enum Week { 4 MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY , SUNDAY; 5 }
里面默認私有的構造方法,不能用 public 修飾
1 package com.jtfr.demo; 2 3 public enum Week { 4 MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY , SUNDAY; 5 6 Week(){ 7 8 } 9 }
實際上“枚舉”的每一個常量都是創建的自身,只是 枚舉 自動簡化了。
Enum如果有抽象接口,每個常量必須實現接口,這樣也說明了,每個常量是創建了對象本身。
1 package com.jtfr.demo; 2 3 public enum Week { 4 MONDAY { 5 @Override 6 void getWeek() { 7 8 } 9 }, TUESDAY { 10 @Override 11 void getWeek() { 12 13 } 14 }, WEDNESDAY { 15 @Override 16 void getWeek() { 17 18 } 19 }, THURSDAY { 20 @Override 21 void getWeek() { 22 23 } 24 }, FRIDAY { 25 @Override 26 void getWeek() { 27 28 } 29 }, SATURDAY { 30 @Override 31 void getWeek() { 32 33 } 34 } , SUNDAY { 35 @Override 36 void getWeek() { 37 38 } 39 }; 40 // 抽象接口必須實現。 41 abstract void getWeek(); 42 }
枚舉還可以實現接口
1 package com.jtfr.demo; 2 3 public interface IWeek { 4 void getWeek(); 5 }
1 package com.jtfr.demo; 2 3 public enum Week implements IWeek{ 4 MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY , SUNDAY; 5 6 @Override 7 public void getWeek() { 8 System.out.println("枚舉可以實現接口"); 9 } 10 }