zoukankan      html  css  js  c++  java
  • Java学习笔记-枚举类型

    枚举类型

    枚举类型就是预先定义的一类常量集合,如一周的时间、水果的类型等。需要注意的几点内容如下:

    • 定义枚举类时,Java默认继承java.lang.Enum,所以定义的枚举类不能继承其他类型;
    • 枚举类中可以包含成员变量、成员函数,但枚举常量的定义再所有field和method之前,并以“;”结束;
    • 枚举类的构造函数必须是package-private或private;
    • 枚举常量创建的时候都是将值传递到构造函数进行构建的;
    • 由于枚举类继承Enum类,默认具有name()(获得枚举常量名)、values()(获得枚举常量数组)、valueOf(String arg)(将arg转为枚举常量)、ordinal()(声明顺序,由0开始)、getClass()、getDeclaringClass()

    实例:

     1 package enumtest;
     2 
     3 public enum Color {
     4     GREEN(2,"绿色"),
     5     RED(3, "红色"),
     6     BLUE(5, "蓝色");
     7     
     8     private int num;
     9     private String desc;
    10     
    11     Color(int num, String desc) {
    12         this.num = num;
    13         this.desc = desc;
    14     }
    15     
    16     public int getNum() {
    17         return this.num;
    18     }
    19     
    20     public String getDesc() {
    21         return this.desc;
    22     }
    23     
    24     public static void main(String[] args) {
    25         for (Color color : Color.values()) {
    26             System.out.println(color+"---"+color.num+"---"+color.desc);
    27         }
    28         for (Color color : Color.values()) {
    29             System.out.println(color.name());
    30         }
    31         System.out.println(Color.valueOf("GREEN").desc);
    32         System.out.println(Color.GREEN.ordinal());
    33         System.out.println(Color.GREEN.getClass());
    34         System.out.println(Color.GREEN.getDeclaringClass());
    35     }
    36 }

     输出结果:

     1 GREEN---2---绿色
     2 RED---3---红色
     3 BLUE---5---蓝色
     4 GREEN
     5 RED
     6 BLUE
     7 绿色
     8 0
     9 class enumtest.Color
    10 class enumtest.Color

     另外,在集合中还存在java.util.EnumSet<E extends Enum<E>>和java.util.EnumMap<K extends Enum<K>,V>,其中EnumSet可存储不重复的枚举常量,EnumMap的KEY为某枚举类型,它们的存储类型由泛型声明决定。

    参考:

    https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

  • 相关阅读:
    MVC中使用EF(2):实现基本的CRUD功能
    ibatis学习之道:ibatis的<[CDATA]>dynamic属性跟#$的应用
    css-选择器
    postman进行http接口测试
    使用HttpClient测试SpringMVC的接口
    http接口测试—自动化测试框架设计
    接口测试自动化框架搭建
    JAVA利用HttpClient进行POST请求(HTTPS)
    java.io.IOException: Attempted read from closed stream. 异常,解决
    java.lang.OutOfMemoryError:GC overhead limit exceeded填坑心得
  • 原文地址:https://www.cnblogs.com/shuimuzhushui/p/8206802.html
Copyright © 2011-2022 走看看