发表于: 2018-02-09 18:10:48
1 590
今日完成
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开发者规范。
评论