枚举类详解,使用方法

理解枚举类型

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

写一个枚举类

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

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(){}
我会写代码+代码改变世界=我会改变世界! 为什么要改变世界? 如果无法改变世界,那么,世界就会改变我......
原文地址:https://www.cnblogs.com/chougoushi/p/13494699.html