创建Java不可变型的枚举类型Gender

本文详细介绍了如何在Java中创建不可变型枚举类,包括构造器使用、成员变量定义以及获取枚举值的方法。通过实例演示了如何实现一个简单的不可变枚举类,帮助开发者理解并掌握这一特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建Java不可变型的枚举类型,其实例如下:

 1 // 创建不可变型的枚举类
 2 enum Gender {
 3     // 此处的枚举值必须调用对应的构造器来创建
 4     MALE("男"), FEMALE("女");
 5 
 6     // 或者,使用下面两个语句代替上面语句
 7     // public static final Gender MALE = new Gender("男");
 8     // public static final Gender FEMALE = new Gender("女");
 9 
10     private final String name;
11 
12     // 枚举类的构造器只能使用private修饰,以使其不可变
13     private Gender(String name) {
14         this.name = name;
15     }
16 
17     public String getName() {
18         return this.name;
19     }
20 }
21 
22 
23 public class GenderImmutableTest {
24     public static void main(String[] args) {
25         Gender g = Gender.MALE;
26         System.out.println(g + ":" + g.getName());        
27     }
28 }

 

转载于:https://www.cnblogs.com/bluepoint2009/p/create-immutable-enum-class.html

Java枚举类型(enum)是一种特殊的类,它表示一组常量,可以用于定义一组相关的常量,例如一周的天数、月份、颜色等等。 使用枚举类型可以提高代码的可读性和可维护性,因为它可以将常量集中管理,避免了在代码中出现大量的魔法数字。 下面是Java枚举类型的使用方法: 1. 定义枚举类型: ``` enum Weekday { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } ``` 2. 使用枚举类型: ``` Weekday day = Weekday.MONDAY; System.out.println(day); // 输出 MONDAY ``` 枚举类型可以作为方法参数或返回,例如: ``` public enum Gender { MALE, FEMALE; public static Gender fromString(String s) { if (s.equalsIgnoreCase("male")) { return MALE; } else if (s.equalsIgnoreCase("female")) { return FEMALE; } else { throw new IllegalArgumentException("Invalid gender: " + s); } } } public class Person { private String name; private Gender gender; public Person(String name, Gender gender) { this.name = name; this.gender = gender; } public String getName() { return name; } public Gender getGender() { return gender; } } // 使用枚举类型作为方法参数和返回 public static void main(String[] args) { Person p1 = new Person("Tom", Gender.MALE); Person p2 = new Person("Mary", Gender.FEMALE); System.out.println(p1.getName() + " is " + p1.getGender()); // 输出 Tom is MALE System.out.println(p2.getName() + " is " + p2.getGender()); // 输出 Mary is FEMALE Gender gender = Gender.fromString("male"); System.out.println("Gender from string: " + gender); // 输出 Gender from string: MALE } ``` 枚举类型还可以定义构造方法、实例方法、静态方法和成员变量,例如: ``` enum Color { RED("FF0000"), GREEN("00FF00"), BLUE("0000FF"); private String code; private Color(String code) { this.code = code; } public String getCode() { return code; } public static Color fromCode(String code) { for (Color c : values()) { if (c.code.equalsIgnoreCase(code)) { return c; } } throw new IllegalArgumentException("Invalid color code: " + code); } } public static void main(String[] args) { Color c1 = Color.RED; Color c2 = Color.fromCode("00FF00"); System.out.println(c1.getCode()); // 输出 FF0000 System.out.println(c2.name()); // 输出 GREEN } ``` 总之,Java枚举类型是一种强大的语言特性,它可以用于定义一组相关的常量,并提供了丰富的方法来操作这些常量。在实际开发中,我们应该尽可能地使用枚举类型来管理常量,以提高代码的可读性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值