• 枚举类详解,使用方法


    理解枚举类型

    枚举顾明思议:"一个一个举出来".枚举是一种特殊的数据类型,之所以特殊又比类类型多了特殊的约束,但正是这些学术早就了枚举的简洁,安全以及便捷

    写一个枚举类

    没有枚举类的时候我们是这样定义一个类的

    class Enumtest1{//东南西北↓
          public static final int DONG; 
          public static final int NAN;
          public static final int XI;
          public static final int BEI;
    }
    

    上述的常量定义常量的方式成为int枚举模式,这样的定义方式并没错,但是可以看出来他的代码非常繁琐,而且如果存在定义int值相同的变量,容易混淆,所以在出现枚举以后并不提倡,但是我们如果使用枚举定义的话是这样的:

    enum Demo{
          DONG,NAN,XI,BEI;  //如果只有这些值没有方法,可以省略分号,但是不建议
    }
    

    是不是很简洁注意这里用的关键字是enum
    枚举类型Demo中分别定义了各个方向,注意值一般都是大写字母,多个值之间以逗号隔开.同时我们应该知道的是枚举也像class类一样定义为一个单独的文件,和定义在其他类内部.还有一个比较重要的是枚举中的值不能无限的创建,必须是有限的,每一个值都保证可以被枚举出来(建议30个以内)

    枚举类的使用

    public class TestEnum(){
          @org.junit.Test
        public void test1(){
             Enumtest1.DONG; //获取DONG的值这里没有赋值就是输出就是: DONG
        }
        @org.junit.Test
        public void test2(){
            System.out.println(Enumtest1.valueOf("DONG")); //获取指定名字为"DONG"的值
            System.out.println(Enumtest1.values());//获取所有枚举值
        }  @org.junit.Test
        public void test3(){
    //定义一个枚举数组
            Enumtest1[] et = new Enumtest1[]{Enumtest1.DONG,Enumtest1.NAN,Enumtest1.XI,Enumtest1.BEI};
    //比较第一个和第二个是否相同
            System.out.println(et[0].compareTo(et[2]));
        }
    }
    

    这里可以看出使用是真的简单,因为所有的枚举类都是默认继承了Enum类会继承的方法有values()和valueOf(String name)的static方法

    枚举类可以有成员

    其实枚举类和其他正常类一样,可以有实例变量,实例方法,静态方法等等,只不过有限罢了
    可以有 private 修饰的属性(封装)
    也可以有对应的getset方法
    枚举类中还可以为定义抽象方法,抽象方法不会的可以补一下基础偶(笔芯),然后在每个枚举值的后面

     DONG() {
            public void fun() {
                System.out.println("FROND:重写了fun()方法");
            }
        }, 
        NAN() {
            public void fun() {
                System.out.println("BEHIND:重写了fun()方法");
            }
        }, 
        XI() {
            public void fun() {
                System.out.println("LEFT:重写了fun()方法");
            }
        },
        BEI() {
            public void fun() {
                System.out.println("RIGHT:重写了fun()方法");
            }
        };
        
        public void fun(){}
    
    我会写代码+代码改变世界=我会改变世界! 为什么要改变世界? 如果无法改变世界,那么,世界就会改变我......
  • 相关阅读:
    DFT测试OCC电路介绍
    ANR原理分析
    Android系统启动流程分析
    Linux15_Linux基础1
    tf之手写体识别
    1
    MongoDB 4.4 以后版本安装Database Tools 工具
    11
    MongoDB 备份与还原mongodump
    nginx 静态文件部署 极简版
  • 原文地址:https://www.cnblogs.com/chougoushi/p/13494699.html
Copyright © 2020-2023  润新知