Java 枚举 Enumeration
时间:2021-07-09 00:28:56
收藏:0
阅读:30
枚举:
- 自定义枚举类
- 使用enum关键字
- 不需要提供setXxx方法, 枚举对象通常只读
- 对枚举对象使用static final, 实现底层优化
- 枚举对象可有多个属性
package com.gibe; public class Enumeration { public static void main(String[] args) { System.out.println(Season.AUTUMN); System.out.println(Season.WINTER); } } class Season { private String name; private String desc; // 定义四个固定类属性 public static final Season SPRING = new Season("spring", "warm"); public static final Season SUMMER = new Season("summber", "hot"); public static final Season AUTUMN = new Season("autumn", "cool"); public static final Season WINTER = new Season("winter", "cold"); // 构造器私有, 防止new // 去掉setXxx, 防止属性被修改 // 在类内部, 直接创建固定对象 // 加入final private Season(String name, String desc) { this.name = name; this.desc = desc; } public String getName() { return name; } public String getDesc() { return desc; } @Override public String toString() { return "Season{" + "name=‘" + name + "‘" + ", desc=‘" + desc + ‘\‘‘ + "}"; } }
steps:
- 构造器私有化
- 本类内部创建对象
- 对外暴露对象 (public static final)
- 提供get方法, 不提供set方法
package com.gibe; public class Enumeration { public static void main(String[] args) { System.out.println(Season.AUTUMN); System.out.println(Season.WINTER); } } enum Season { SPRING("spring", "warm"), WINTER("winter", "cold"), AUTUMN("autumn", "cool"), SUMMER("summer", "hot"); private String name; private String desc; private Season() { } private Season(String name, String desc) { this.name = name; this.desc = desc; } @Override public String toString() { return "Season{" + "name=‘" + name + ‘\‘‘ + ", desc=‘" + desc + ‘\‘‘ + ‘}‘; } public String getName() { return name; } public String getDesc() { return desc; } }
- 使用enum关键字开发枚举类时,默认继承Enum类,而且时一个final类, javap 反编译
- 传统的 public static final Season2 SPRING = new Season2("春天", "温暖"); 简化成 SPRING("春天", "温暖"), 这里必 须知道,它调用的是哪个构造器
- 使用无参构造器 创建 枚举对象, 实参列表 () 都可省
enum Gender{ BOY,GIRL; // 调用了Gender类的无参构造器 }
原文:https://www.cnblogs.com/dissipate/p/14987502.html
评论(0)