zoukankan      html  css  js  c++  java
  • 枚举类

    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 }
  • 相关阅读:
    解决函数内this指向
    .Math 数值对象
    时间函数
    数学中的弧度和角度
    闭包
    在拖拽元素的时候,如果元素的内部加了文字或者图片,拖拽效果会失灵?
    正则
    JS高级-事件对象
    JS高级-事件捕捉
    JS高级-面向对象
  • 原文地址:https://www.cnblogs.com/shadowdoor/p/6915091.html
Copyright © 2011-2022 走看看