Java 枚舉和類的區別


枚舉

包含一組常量合法的數據,不能創建枚舉實例,也不能進行擴展。

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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM