枚举类

枚举作用:

  一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,可以直接使用枚举予以解决。

枚举类的定义格式:

  enum 类名{
        //枚举值
    }

枚举类详解:

  1. 枚举类也是一个特殊的类。
    2. 枚举值默认的修饰符是public static final。
    3. 枚举值就是是枚举值所属的类的类型, 然后枚举值是指向了本类的对象。
    4. 枚举类的构造方法默认的修饰符是private的。
    5. 枚举类可以定义自己的成员变量与成员函数。
    6. 枚举类可以自定义构造函数,但是构造函数的修饰符必须是private。
    7. 枚举类可以存在抽象的方法,但是枚举值必须要实现抽象的方法。
    8. 枚举值必须要位于枚举类的第一个语句。

代码如下:

 1 enum Sex{
 2     man("男") { //实现抽象方法
 3         @Override
 4         public void run() {
 5             System.out.println("男人跑");
 6         }
 7     },woman("女") {
 8         @Override
 9         public void run() {
10             System.out.println("男人追");
11         }
12     };
13     
14     String value; //自定义属性
15     public void getValue(){ //自定义方法
16         System.out.println(this.value);
17     }
18     private Sex(String value) { //自定义构造方法 但是必须是private
19         this.value = value;
20     }
21     
22     public abstract void run();
23 }
24 
25 public class DemoEnum {
26     
27     public static void main(String[] args) {
28         Sex sex = Sex.man;
29         sex.getValue();
30         sex.run();
31     }
32 }
View Code

枚举类的使用

一般配合switc来使用:swit可以接收的参数类型为:byte char short int String枚举类型

代码示例如下:

 1 enum Season{
 2     spring,
 3     summer,
 4     autumn,
 5     winter
 6 }
 7 
 8 public class DemoEnum {
 9     public static void main(String[] args) {
10         Season season = Season.spring;
11         switch (season) {
12         case spring:
13             System.out.println("春天……");
14             break;
15         case summer:
16             System.out.println("春天……");
17             break;
18         case autumn:
19             System.out.println("春天……");
20             break;
21         case winter:
22             System.out.println("春天……");
23             break;
24         default:
25             break;
26         }
27     }
28 }
View Code

 注意:
     case语句后面跟的枚举值,只需要单写枚举值即可,不需要再声明该 枚举值是属于哪个枚举类的。

原文地址:https://www.cnblogs.com/nicker/p/6242998.html