枚举类的使用

枚举类的使用,第1张

枚举类的使用 什么是枚举

1,当类中的对象是有限个,确定的被称为枚举类,当需要定义一组常量时,使用枚举类

2,若枚举只有一个对象,则可以作为一种单列模式的实现方式

如何定义枚举类

1,jdk5.0之前,自定义枚举类

public class SeaonTest {

    public static void main(String[] args) {
//        调用自定义枚举类的方法
        Season spring = Season.SPRING;
        System.out.println(spring);
    }
}

//    自定义枚举类
    class Season{
//        声明Season对象的属性:private final进行修饰
    private  final String seasonName;
    private  final String seasonDesc;
//    私有化的构造器,并给对象属性赋值
   private Season (String seasonName,String seasonDesc){
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;

    }
//    3,提供当前枚举类的多个对象:public static final的
    public static final Season SPRING = new Season("春天", "1");
    public static final Season SUMMER = new Season("夏天", "2");
    public static final Season AUTUMN = new Season("秋天", "3");
    public static final Season WINTER = new Season("冬天", "4");

    //    4,其他诉求L:获取枚举类对象的属性,git
    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

    @Override
    public String toString() {
        return "Season{" +
                "seasonName='" + seasonName + ''' +
                ", seasonDesc='" + seasonDesc + ''' +
                '}';
    }
}

2,jdk5.0之后,可以使用关键字enum进行枚举类的定义

//    定义的枚举类默认继承于java.lang.Enum
//
    public static void main(String[] args) {
        Season2 summer = Season2.SUMMER;
//        如果使用toString方法重写的化打印的是重写之后的内容  Season{seasonName='夏天', seasonDesc='2'}
        System.out.println(summer);// SUMMER 默认toSteing打印的是当前对象的名字
        System.out.println(Season2.class.getSuperclass());
    }

}


//    自定义枚举类
enum Season2{
    //    3,提供当前枚举类的对象,多个对象之间使用","隔开,末尾对象使用";"结束
         SPRING  ("春天", "1"),
         SUMMER ("夏天", "2"),
         AUTUMN  ("秋天", "3"),
         WINTER  ("冬天", "4");

    //        声明Season对象的属性:private final进行修饰
    private  final String seasonName;
    private  final String seasonDesc;
    //    私有化的构造器,并给对象属性赋值
    private Season2 (String seasonName,String seasonDesc){
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;

    }


    //    4,其他诉求L:获取枚举类对象的属性,git
    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

    @Override
    public String toString() {
        return "Season{" +
                "seasonName='" + seasonName + ''' +
                ", seasonDesc='" + seasonDesc + ''' +
                '}';
    }
Enum类的主要常用方法




public class SeaonTest1 {
//    定义的枚举类默认继承于java.lang.Enum
//
    public static void main(String[] args) {
        Season2 summer = Season2.SUMMER;
//        如果使用toString方法重写的化打印的是重写之后的内容  Season{seasonName='夏天', seasonDesc='2'}
        System.out.println(summer.toString());// SUMMER 默认toSteing打印的是当前对象的名字
//        System.out.println(Season2.class.getSuperclass());
//        values方法
        Season2[] values = Season2.values();
        for ( int i = 0; i 
Enum关键字定义的枚举类实现接口的情况 

1,实现接口,在enum类中实现抽象方法

2,让枚举类的对象分别实现接口中的抽象方法

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5671940.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存