发表于: 2018-02-09 18:10:48

1 589


今日完成

1.复盘申请

2.基础学习

(1)枚举类——枚举也是一个类,只是关键字不一样。使用的是enum。首先定义一个枚举类。

public enum EnumDemo {
RED,BULE,BLACK, YELLOW, GREEN
}

(2)我们编译一下,看看class文件的字节码文件。

public final class Color extends java.lang.Enum<Color> {

  public static final Color RED;

  public static final Color BLUE;

  public static final Color BLACK;

  public static final Color YELLOW;

  public static final Color GREEN;

  public static Color[] values();

  public static Color valueOf(java.lang.String);

  static {};

}

数学,矩阵,算法——图像处理

一切成功源自积累

Java枚举类的高级用法说明

public enum Color{

    RED, BLUE, BLACK, YELLOW, GREEN

}

Color c = Color.RED;

如上,是我们通常使用枚举类型的常用方式。

从编写方式上看,enum很像是特殊的class,实际上enum声明定义的类型就是一个类。而这些类都是类库中Enum类的子类。查看编译之后的字节码文件可以发现enum类型被单独编译成了字节码文件Color.class。

复制代码

Compiled from "Color.java"

public final class Color extends java.lang.Enum<Color> {

  public static final Color RED;

  public static final Color BLUE;

  public static final Color BLACK;

  public static final Color YELLOW;

  public static final Color GREEN;

  public static Color[] values();

  public static Color valueOf(java.lang.String);

  static {};

}

复制代码

由上可知:

1. enum类型是一个不可以被继承的final类。其枚举值都是Color类型的类静态常量(这也是为什么enum会大写的原因)。


用法一:定义常量

在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。使用values()方法可以遍历出定义的所有常量。

    public static void main(String[] args) {
int[] xx = new int[3];
       EnumDemo c = EnumDemo.GREEN;
//        System.out.println(c);
   
       EnumDemo[] colorEnums = EnumDemo.values();
       for (EnumDemo colorEnum : colorEnums) {
System.out.println(colorEnum);
       }

}

用法2:

给 enum 自定义属性和方法

如果打算自定义方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。 

 RED("这是红色"),BULE("这是蓝色"),BLACK("这是黑色"), YELLOW("这是黄色"), GREEN("这是绿色");
   private String sms;
   EnumDemo(String sms){
this.sms =sms;
   }
}

明日计划

1.休假

收获

1.任务总结

2.阿里巴巴java开发者规范。


返回列表 返回列表
评论

    分享到