加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java(4)枚举类

发布时间:2020-12-15 06:48:49 所属栏目:Java 来源:网络整理
导读:@ 目录 一、枚举类简介 二、自定义枚举类 1、方式一:jdk5.0之前,自定义枚举类 2、方式二:jdk5.0,用enum关键字定义枚举类 三、Enum类的主要方法 1、toString() 2、values() 3、valueOf(String str) 四、使用enum关键字定义的枚举类去实现接口 1、情况一 2

@

目录
  • 一、枚举类简介
  • 二、自定义枚举类
    • 1、方式一:jdk5.0之前,自定义枚举类
    • 2、方式二:jdk5.0,用enum关键字定义枚举类
  • 三、Enum类的主要方法
    • 1、toString()
    • 2、values()
    • 3、valueOf(String str)
  • 四、使用enum关键字定义的枚举类去实现接口
    • 1、情况一
    • 2、情况二:

一、枚举类简介

  1. 类的对象确定且有限,就成为枚举类。
  2. 当需要定义一组常量时,使用枚举类。
  3. 如果枚举类只有一个对象,则可以作为单例模式的实现方式

二、自定义枚举类

1、方式一:jdk5.0之前,自定义枚举类

  1. 代码实现

    class Season{
        //1.属性要定义为 private final的
        private final String seasonName;
        private final String seasonDesc;
    
        //2.构造器私有化(因为属性是final的,所以要在构造器中初始化)
        private Season(String seasonName,String seasonDesc){
            this.seasonName = seasonName;
            this.seasonDesc = seasonDesc;
        }
    
        //3. 提供当前枚举类的几个对象,并声明为public static final
        public static final Season SPRING = new Season("春天","我是春天");
        public static final Season SUMMER = new Season("夏天","我是夏天");
        public static final Season AUTUMN = new Season("秋天","我是秋天");
        public static final Season WINTER = new Season("冬天","我是冬天");
    }
    

2、方式二:jdk5.0,用enum关键字定义枚举类

  1. 代码实现

    enum Season1{
                //1.提供枚举类的对象
                SPRING("春天","我是春天"),SUMMER("夏天","我是夏天"),AUTUMN("秋天","我是秋天"),WINTER("冬天","我是冬天");
    
    
                //2.定义属性,声明为private final
                private final String seasonName;
                private final String seasonDesc;
    
                //3.私有化构造器,并给对象赋值
                private Season1(String seasonName,String seasonDesc){
                    this.seasonName = seasonName;
                    this.seasonDesc = seasonDesc;
                }
    
                //4.额外需求:get()方法
    
                public String getSeasonName() {
                    return seasonName;
                }
    
                public String getSeasonDesc() {
                    return seasonDesc;
                }
    }
    
  2. 说明

    1. 枚举类的对象在第一行声明,用逗号分隔,分号结尾。不用自己加 public static final,因为系统会自动添加。也不用加new + 构造器来创建。
    2. enum定义的枚举类默认继承 java.lang.Enum类,因此不能再继承其他类。可以通过

三、Enum类的主要方法

1、toString()

  1. 返回当前枚举类对象的名字。
  2. 默认输出对象和调用toString是一样效果

2、values()

  1. 静态方法
  2. 返回枚举类型的对象数组,可以方便的遍历所有枚举值。

3、valueOf(String str)

  1. 静态方法
  2. 把一个字符串转换为对应的枚举类对象。
  3. 名字必须一致,否则会出异常: IllegalArgumentException: No enum constant com.lzx.java.Season1.spring

四、使用enum关键字定义的枚举类去实现接口

1、情况一

  • 实现接口,在enum类中实现抽象方法即可

2、情况二:

  • 每个对象分别去实现抽象方法,则不同的对象调用各自实现的抽象方法。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读