• Java程序设计——枚举(Java高级应用)


    目录

    一、枚举

    1.枚举类的特点:

    2.枚举类的使用

    3、包含属性和方法的枚举类

    二、Enum类


    一、枚举

    1.枚举类的特点:

    使用enum定义的枚举类默认继承了Enum类,其可以实现一个或多个接口

    使用enum定义非抽象的枚举类时会使用final修饰,因此枚举类不能派生子类

    枚举类的构造方法默认且只能使用private访问修饰符

    枚举类的所有实例必须在枚举类的类体第一行显示列出,列出的枚举实例默认使用public static final进行修饰

    2.枚举类的使用

    枚举类的默认方法功能
    public static enumType[  ] values()返回一个枚举类型的数组,该数组包含枚举类的所有实例值
    public static enumType valueOf(String str)返回指定名称的枚举实例值
    1. enum Week{
    2. Monday,Tuesday, Wednesday,Thursday,Friday,Saturday,Sunday
    3. }
    4. public class Enum_1 {
    5. public static void main(String[] args) {
    6. Week today = Week.Monday;
    7. System.out.println("today is " + today);
    8. System.out.println("Week枚举类型的所有取值:");
    9. for (Week week:Week.values()) {
    10. System.out.println(week);
    11. }
    12. }
    13. }

    3、包含属性和方法的枚举类

    1. enum Weeks{
    2. // 第一行列举枚举实例
    3. Monday("星期一"),Tuesday("星期二"),Thursday("星期四"),
    4. Friday("星期五"),Saturday("星期六"),Sunday("星期日");
    5. private String name;
    6. Weeks(String name) {
    7. this.name = name;
    8. }
    9. public String toString(){
    10. return this.name;
    11. }
    12. }
    13. public class Enum_2 {
    14. public static void main(String[] args) {
    15. Weeks today = Weeks.Monday;
    16. System.out.println("今天是 " + today);
    17. System.out.println("Weeks.valueOf('Tuesday') = "+Weeks.valueOf("Tuesday"));
    18. System.out.println("Week枚举类型的所有取值为:");
    19. for (Weeks week : Weeks.values()) {
    20. System.out.println(week);
    21. }
    22. }
    23. }

    二、Enum类

    常用方法功能
    final int ordinal()返回枚举实例在枚举类中的序号,计数从0开始
    final int compareTo(enumtype e)用于比较
    boolean equals(Object object)比较两个枚举引用的对象是否相等
    public String toString()返回枚举实例的名称
    public static enumType valueOf(Class enumType,String name)返回指定枚举类型和指定名称的枚举实例值
    1. enum Season{
    2. // 第一行列举枚举实例
    3. Spring("春"),Summer("夏"),Fall("秋"),Winter("冬");
    4. private String name;
    5. private Season(String name) {
    6. this.name = name;
    7. }
    8. public String toString(){
    9. return this.name;
    10. }
    11. }
    12. public class Enum_3 {
    13. public static void main(String[] args) {
    14. System.out.println("Season的所有实例:");
    15. for (Season season : Season.values()) {
    16. System.out.println(season);
    17. }
    18. System.out.println("————————————————————————————");
    19. Season s1 = Season.Spring;
    20. System.out.println(s1);
    21. System.out.println("————————————————————————————");
    22. Season s2 = Season.valueOf(Season.class,"Summer");
    23. Season s3 = Season.valueOf("Summer");
    24. System.out.println(s2 + " ----- " + s2.ordinal());
    25. System.out.println(s3 + " ----- " + s3.ordinal());
    26. System.out.println("————————————————————————————");
    27. int compare = s2.compareTo(s1);
    28. if (compare > 0){
    29. System.out.println(s1 + "------->" + s2);
    30. }else{
    31. System.out.println(s2 + "------->" + s1);
    32. }
    33. System.out.println("————————————————————————————");
    34. if (s2.equals(s1)){
    35. System.out.println(s1 + " = " + s2);
    36. }else{
    37. System.out.println(s1 + " != " + s2);
    38. }
    39. System.out.println("————————————————————————————");
    40. }
    41. }

  • 相关阅读:
    【开源三方库】crypto-js加密算法库的使用方法
    Hive 常见数据倾斜场景及解决方案(Map\Join\Reduce端)
    回归模型介绍
    AI为方,产业为向:京东云数字人的技术攀爬
    LintCode 89: k Sum (背包问题)
    Maven基础概念【仓库和坐标】这篇看完懂了
    mysql锁机制
    什么是腾讯云关系型数据库(MySQL/SQL Server/MariaDB/PostgreSQL详解)
    期望最大化(EM)算法:从理论到实战全解析
    【算法】递归解决各种数据结构的遍历问题
  • 原文地址:https://blog.csdn.net/Mr_Morgans/article/details/125495142