备案后修改网站内容,软件平台架构,网站源码修改后怎么提交,女生做ui设计师好吗文章目录 1. 什么是枚举2. 定义3. 使用1#xff09;常量2#xff09;遍历3#xff09;switch 4. 属性和方法1#xff09;属性2#xff09;方法 5. 实现原理6. 使用场景总结 1. 什么是枚举 枚举是列出某些有穷序列集的所有成员的程序#xff0c;或者是一种特定类型对象的计… 文章目录 1. 什么是枚举2. 定义3. 使用1常量2遍历3switch 4. 属性和方法1属性2方法 5. 实现原理6. 使用场景总结 1. 什么是枚举 枚举是列出某些有穷序列集的所有成员的程序或者是一种特定类型对象的计数。 在 Java中枚举是一种特殊的数据类型用于表示一组具名的常量。
枚举类型可以包含零个或多个枚举常量每个常量都是该枚举类型的一个实例。使用枚举可以使代码更加清晰、可读并避免使用整数或字符串常量进行硬编码。
源码
从 Enum 的定义我们可以看到它实现了 Comparable 和 Serializable 两个接口说明了枚举类型可以使用比较器或者序列化操作。
2. 定义
枚举类型是通过 enum 关键字来定义的
示例代码
public enum Day {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}在这个例子中我们定义了一个名为 Day 的枚举类型包含了一周的所有天。每个枚举常量都是 Day 类型的一个实例代表一个特定的天。
3. 使用
1常量
枚举常量可以直接用于程序中
Day today Day.SATURDAY;
if (today Day.SATURDAY || today Day.SUNDAY) {System.out.println(放假啦);
} else {System.out.println(搬砖中。。。);
}2遍历
通过 values() 方法获取枚举类型的所有常量进行遍历
示例代码
public class Demo {public static void main(String[] args) {for (Day day : Day.values()) {System.out.println(day);}}
}
enum Day {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}输出结果
MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY SUNDAY
3switch
枚举经常与 switch 语句结合使用使得代码更加清晰
示例代码
public class Demo {public static void main(String[] args) {Day today Day.SATURDAY;switch (today) {case MONDAY:case TUESDAY:case WEDNESDAY:case THURSDAY:case FRIDAY:System.out.println(搬砖中。。。);break;case SATURDAY:case SUNDAY:System.out.println(放假啦。。。);break;default:System.out.println(错误的星期);break;}}
}
enum Day {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}输出结果
放假啦。。。
4. 属性和方法
1属性
枚举可以包含属性每个枚举常量可以拥有自己的属性
示例代码
enum Day {MONDAY(Mon),TUESDAY(Tue),WEDNESDAY(Wed),THURSDAY(Thu),FRIDAY(Fri),SATURDAY(Sat),SUNDAY(Sun);// 自定义属性private final String subName;Day(String subName) {this.subName subName;}public String getSubName() {return subName;}
}每个枚举常量都有一个名为 subName 的属性代表了星期的简写
2方法
枚举可以定义方法使得每个枚举常量可以具有自己的行为
示例代码
enum Day {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;// 自定义方法public boolean isWeekend() {return this SATURDAY || this SUNDAY;}
}在这个例子中我们为枚举定义了一个方法 isWeekend()用于判断当前枚举常量是否表示周末
5. 实现原理 枚举类型本质上是一种特殊的类 编译器会在创建枚举时自动添加一些特殊的方法例如 values() 方法用于获取所有枚举常量
6. 使用场景 用枚举替代整数常量和字符串常量 当程序需要一组常量时使用枚举可以使得代码更加清晰和可读避免了硬编码的问题 使用枚举常量的方法提高可读性 在定义枚举时考虑为每个常量添加一些相关的方法提高代码的可读性和可维护性 使用枚举实现单例模式 枚举天生具备线程安全性和单例特性可以作为实现单例模式的一种方式
总结
枚举是一种强大的工具用于表示一组具名的常量。通过枚举我们可以更清晰地表达代码中的常量集合并通过相关的属性和方法使得代码更加可读、可维护。使用枚举的最佳实践包括替代整数常量和字符串常量、为枚举常量添加有意义的方法、以及利用枚举实现单例模式等。