java 枚举类进阶
java
it书童
2020-11-29 17:04:44
0赞
0踩
1063阅读
0评论
枚举类也是一种类,只是它是一种比较特殊的类,因此它一样可以定义成员变量、方法和构造器
定义一个枚举类
public enum Gender {
MALE, FEMALE;
// 定义一个 public 修饰的实例变量
public String name;
}
调用枚举类
public static void main(String[] args) {
// 获取指定枚举类的枚举值
Gender g = Enum.valueOf(Gender.class, "FEMALE");
g.name = "女";
System.out.println(g + "代表:" + g.name);
}
使用Gender枚举类时与使用一个普通类没有太大的差别,差别只是产生Gender对象的方式不同,枚举类的实例只能是枚举值,而不是随意地通过new来创建枚举类对象
枚举类通常应该设计成不可变类,也就是说,它的成员变量值不应该允许改变,这样会更安全,而且代码更加简洁。因此建议将枚举类的成员变量都使用private final修饰
如果将所有的成员变量都使用了final修饰符来修饰,所以必须在构造器里为这些成员变量指定初始值
一旦为枚举类显式定义了带参数的构造器,列出枚举值时就必须对应地传入参数
因此,代码改造为:
public enum Gender {
MALE("男"), FEMALE("女");
private final String name;
Gender(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
调用:
public class GenderTest {
public static void main(String[] args) {
// 获取指定枚举类的枚举值
Gender g = Enum.valueOf(Gender.class, "FEMALE");
System.out.println(g + "代表:" + g.getName());
}
}
实质上:
MALE("男"), FEMALE("女");
等同于:
public static final Gender MALE = new Gender("男");
public static final Gender FEMALE = new Gender("女");
- 上一篇: java 枚举类入门
- 下一篇: 枚举类实现接口

关于我
一个文科出身的程序员,追求做个有趣的人,传播有价值的知识,微信公众号主要分享读书思考心得,不会有代码类文章,非程序员的同学请放心订阅
转载须注明出处:https://www.itshutong.com/articles/913
精品付费
个人开发者通过payjs接入微信支付
5029
0
这一次,真正掌握composer
2764
0
相关推荐
java ServletContext 对象详解
789
0
Servlet 入门详解
799
0
java Request 对象详解
978
0
java 变量与常量
702
0
java 接口中的常量
758
0
Mybatis 框架快速入门
781
0
Mybatis 一级缓存
627
0
spring 是什么及入门介绍
762
0
Lombok 与 Idea 结合
836
0
SpringBoot 入门程序
722
0
微服务场景模拟
838
0
java 线程的生命周期
1015
0
java线程组
1178
0
java抛出异常
1201
0
java对象序列化
1221
0