enum
enum
概述1
1. 创建枚举类型要使用 enum 关键字
2. 隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)
3. 构造函数中简单来说就是枚举类型中的枚举值都会对应调用一次构造函数
4. 枚举中的构造函数是私有类,无法在外面创建enum的子类
5. 枚举类对象不可变,父类不可被子类继承,方法不会被重写
6. 枚举值默认static(静态类常量) ,会为每个类常量增加一个构造函数
7. 枚举类型比较:equals 方法与 == 方法相同
示例
public enum color {
/**
* 红色,枚举值必须有文档注释
*/
RED("red","红色"), // 枚举值列举以,分隔
/**
* 绿色,枚举值必须有文档注释
*/
GREEN("green","绿色"); // 枚举值列举以;结束
private String color ;
private String desc ;
Color(String color , String desc){ // 构造方法无需添加 private ,默认私有,外部无法通过构造方法创建对象
this.color = color;
this.desc = desc ;
}
public String getColor(){ // 需要自定义对外暴露的属性
return this.getColor();
}
public String getDesc(){
return this.getDesc();
}
public static void main(String[] args) {
System.out.println(RED.getColor()); // 枚举类中的方法默认带有 static 修饰
System.out.println(GREEN.getDesc());
}
}
equals 与 == 等价
// 枚举类型比较
public static void main(String[] args) {
System.out.println(ColorEnum.RED.equals(ColorEnum.RED)); // true
System.out.println(ColorEnum.RED == ColorEnum.RED); // true
}
- Enum.java 源码中 equals 与 == 等价
/**
* Returns true if the specified object is equal to this
* enum constant.
*
* @param other the object to be compared for equality with this object.
* @return true if the specified object is equal to this
* enum constant.
*/
public final boolean equals(Object other) {
return this==other;
}
java枚举类的构造函数实例详解 ↩︎
相关阅读
有三个点,计算出角平分线。首先要算出两个点之间的方位角,根据方位角算出夹角。下面以角平分线长度是20示例计算。 double
《On Java 8》中文版,又名《Java 编程思想》中文第五版
来源:LingCoder/OnJava8 主译: LingCoder 参译: LortSir 校对:nickChenyx E-mail: [email protected] 本书原作者为 [美] Bruce
JAVA在程序运行时,在内存中划分5片空间进行数据的存储。分别是:1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。基本,栈stack和堆heap这
Java 处理 XML的四种方法 -->附:XmlUtils
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。本文将详细介绍用Java解析XML的四种方法。