枚舉類


1  枚舉的需求范圍

  一些方法在運行時,它需要的數據不能是任意的,而必須是一定范圍內的值

  比如: 方向 , 性別 、 季節 、 星期......

 

2  枚舉類的定義格式:

    enum 類名{
      //枚舉值
    }

 

3  枚舉要注意的細節:

   1. 枚舉類也是一個特殊的類。

     將枚舉類編譯,會存在以 .class 為后綴的文件


  2. 枚舉值默認的修飾符是public static final。

     假如我自定義一個性別枚舉類     

enum Sex{
    man,woman;
}

     那么其中的 man 其實相當於 public static final Sex man = new Sex();


  3. 枚舉值就是枚舉值所屬的類的類型,枚舉值是指向了本類的對象的。

    參考2


  4. 枚舉類的構造方法默認的修飾符是private的。    

enum Sex{
    man,woman;
    
    private Sex(){
        
    }
}

 

  5. 枚舉類可以定義自己的成員變量與成員函數。   

 1 enum Sex{
 2     man,woman;
 3     
 4     private Sex(){
 5         
 6     }
 7     
 8     String value;//成員變量
 9     public void getValue(){
10         System.out.println("value: " + value);
11     }
12 }

 

  6. 枚舉類自定義帶參構造函數時,枚舉值需要傳參。   

 1 enum Sex{
 2     man("男"),woman("女");
 3     
 4     private Sex(String value){
 5         this.value = value;
 6     }
 7     
 8     String value;//成員變量
 9     public void getValue(){
10         System.out.println("value: " + value);
11     }
12 }

 

  7. 枚舉類可以存在抽象的方法,但是枚舉值必須要實現抽象的方法。    

 1 enum Sex{
 2     man("男"){
 3 
 4         @Override
 5         public void run() {
 6             System.out.println("男人再跑!");
 7         }
 8         
 9     },woman("女"){
10         @Override
11         public void run() {
12             System.out.println("女人再跑!");
13         }
14     };
15     
16     public abstract void run();
17       
18 //    private Sex(String value){
19 //        this.value = value;
20 //    }
21 //    
22 //    String value;//成員變量
23 //    
24 //    public void getValue(){
25 //        System.out.println("value: " + value);
26 //    }
27    
28 }

 

  8. 枚舉值必須要位於枚舉類的第一個語句。

 

注意: JDK1.5才有枚舉的哦

 

完整代碼

 1 enum Sex{
 2     man("男"){
 3 
 4         @Override
 5         public void run() {
 6             System.out.println("男人再跑!");
 7         }
 8         
 9     },woman("女"){
10         @Override
11         public void run() {
12             System.out.println("女人再跑!");
13         }
14     };
15     
16     public abstract void run();
17       
18     private Sex(String value){
19         this.value = value;
20     }
21     
22     String value;//成員變量
23     
24     public void getValue(){
25         System.out.println("value: " + value);
26     }
27    
28 }
29 
30 public class Demo4 {
31     public static void main(String[] args) {
32         Sex sex = Sex.man; //獲取到了枚舉類的對象
33         sex.getValue();
34         
35         sex.run();
36     }
37 }

 


免責聲明!

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



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