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 }
  • 相关阅读:
    RabbitMQ系列教程之七:RabbitMQ的 C# 客户端 API 的简介
    RabbitMQ系列教程之六:远程过程调用(RPC)
    git无法提交,存在未提交的修改,在重新合并前或者撤销更改
    安装mysql提示3306端口已经被占用解决方案
    区块链学习一基本知识
    超级账本 --- ReadWriteSet的逻辑结构
    解决windows10 里vs2015 附件进程调试提示“此任务要求应用程序有提升的权限”
    Fabric V1 交易的生命周期
    sql 取首次投资的人
    Win10年度更新开发必备:VS2015 Update 3正式版下载汇总
  • 原文地址:https://www.cnblogs.com/shadowdoor/p/6915091.html
Copyright © 2011-2022 走看看