枚举

枚举

1.1 简介

枚举是在jdk1.5之后新出现的一种类型。枚举使用一组常量数据来表示特定的数组集合。而且枚举提供了比常量更多的方法,用于定义有限数量的一组同类常量,例如:

错误级别:

低、中、高、急

一年的四季:

春、夏、秋、冬

商品的类型:

美妆、手机、电脑、男装、女装...

在枚举类型中定义的常量是该枚举类型的实例。

1.2 枚举的定义

权限修饰符 enum 枚举名称 {

实例1,实例2,实例3,实例4;

}

举例如下:

 1 public enum Level{
 2     LOW(30), MEDIUM(15), HIGH(7), URGENT(1);
 3     private int levelValue; 
 4     private Level(int levelValue) {
 5         this.levelValue = levelValue; 
 6     }
 7     public int getLevelValue() {
 8         return levelValue;
 9     }
10 }

 

1.3 注意事项

  • 枚举类对象的属性不应该允许被改动,最好使用private final修饰,应该在构造器为其赋值;

  • 必须在枚举类的第一行声明枚举类对象(实例);

  • 枚举类的构造器只能使用private访问修饰符;枚举类的所有实例必须在枚举类中显式列出,以逗号","分隔,以分号";"结尾;

  • 如果枚举类定义了带参数的构造器,则在列出枚举类时,也必须对应的传入参数;

  • 枚举类名建议带上Enum后缀,枚举实例名称需要全大写,单词间用下划线隔开。

1.4 枚举的特点

  • 枚举的直接父类是java.lang.Enum,但是不能显示的继承Enum;

  • 枚举就相当于一个类,可以定义构造方法、成员变量、普通方法和抽象方法;

  • 默认私有的构造方法,即使不写访问权限也是private。(假构造器,底层没有无参数的构造器);

  • 每个实例分别用于一个全局常量表示,枚举类型的对象是固定的,实例个数有限,不能使用new关键字;

  • 枚举实例必须位于枚举中最开始部分,枚举实例列表的后面要有分号月其他成员相分隔;

  • 枚举实例后有花括号时,该实例是枚举的匿名内部类对象。

    1.5 枚举类的主要方法

    Enum抽象类常用方法

    Enum类是所有Java枚举类的公共抽象类,它 的常用方法如下:

    1.6 实现接口的枚举类

    所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。

    每个枚举对象,都可以实现自己的抽象方法 。

     1 public interface LShow{ 
     2 void show();
     3 }
     4 public enum Level implements LShow{
     5 LOW(30){ 
     6 @Override public void show(){
     7 //... 
     8 }}, MEDIUM(15){
     9 @Override public void show(){
    10 //... } },HIGH(7){ 
    11 @Override public void show(){
    12 //... } },URGENT(1){
    13 @Override public void show(){ 
    14 //... } };private int levelValue;
    15 16    private Level(int levelValue) { 
    17 this.levelValue = levelValue;
    18    }
    19 public int getLevelValue() {
    20 return levelValue; 
    21    } 
    22 }

     


     

  •  

posted @ 2020-09-08 22:48  十月初生  阅读(142)  评论(0)    收藏  举报