欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java基础-枚举

程序员文章站 2022-07-14 21:06:17
...

Enum:枚举类

1、使用 enum 关键字定义枚举类

一、枚举类的使用

1、枚举类的理解:类的对象只有有限个,确定的。我们称此类未枚举类。

2、当需要定义一组常量时,强烈建议使用枚举类。

3、如果枚举类中只有一个对象,则可以作为单例模式的实现方式。

jdk 5.0后,可以使用enum关键字定义枚举类。(推荐使用,比较便捷)

public class SeasonTest1{
    public static void main(String[] args) {
        Season summer = Season.SUMMER;
        // 演示toString()方法 - 返回当前枚举类对象常量的名称
        System.out.println(summer.toString());
        
        // values()方法演示
        Season[] values = Season.values()
        for(int 1 = 0; i < values.length; i++){
            System.out.println(values[i]);
        }
        
        // valueOf(String objName):返回枚举类中对象名是objName的对象
        Season winter = Season.valueOf("WIINTER");
        // 如果没有objName的枚举对象,则抛异常:IllegaArgumentException
        System.out.println(winter);
    }
}

enum Season {  // Season 的父类是:Enum
    // 提供当前枚举类的对象,多个对象之间用 "," 号隔开,末尾的对象用:";"结束
    // SPRING、SUMMER、AUTUMN、WINTER是Season不同对象的对象名
    // 每个对象中都包换两个属性;(这里这两个属性的类型都是String的)

    SPRING("春天","穿暖花开"),
    SUMMER("夏天", "夏日炎炎"),
    AUTUMN("秋天", "秋高气爽"),
    WINTER("冬天", "冰天雪地");

    // 声明Season对象的属性
    private String seasonName;
    private String seasonDesc;

    // 构造方法不能省,否则报错
    Season(String seasonName, String seasonDesc) {
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }

    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }
}

2、Enum类中的常用方法

Java基础-枚举
Java基础-枚举

3、枚举类实现接口

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

和类实现接口一样,也是用 implents + 接口名称;

public class SeasonTest1{
    public static void main(String[] args) {
        Season summer = Season.SUMMER;
        // 演示toString()方法 - 返回当前枚举类对象常量的名称
        System.out.println(summer.toString());
        
        // values()方法演示
        Season[] values = Season.values()
        for(int 1 = 0; i < values.length; i++){
            System.out.println(values[i]);
        }
        
        // valueOf(String objName):返回枚举类中对象名是objName的对象
        Season winter = Season.valueOf("WIINTER");
        // 如果没有objName的枚举对象,则抛异常:IllegaArgumentException
        System.out.println(winter);
        
        winter.show();
    }
}

enum Season implents InterfaceDemo{  // Season 的父类是:Enum
    // 提供当前枚举类的对象,多个对象之间用 "," 号隔开,末尾的对象用:";"结束
    // SPRING、SUMMER、AUTUMN、WINTER是Season不同对象的对象名
    // 每个对象中都包换两个属性;(这里这两个属性的类型都是String的)

    // 也可以每个枚举类的对象分别实现接口中的方法
    SPRING("春天","穿暖花开"){
        System.out.println("春天漂亮呀...");
    },
    SUMMER("夏天", "夏日炎炎"){
        System.out.println("夏天漂亮呀...");
    },
    AUTUMN("秋天", "秋高气爽"){
        System.out.println("秋天漂亮呀...");  
    },
    WINTER("冬天", "冰天雪地"){
        System.out.println("冬天漂亮呀...");
    };

    // 声明Season对象的属性
    private String seasonName;
    private String seasonDesc;

    // 构造方法不能省,否则报错
    Season(String seasonName, String seasonDesc) {
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }

    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }
    
    // 重写InterfaceDemo接口中的 show() 方法
    @Override
    public void show(){
        System.out.println("漂亮呀...");
    }
}

上一篇: 学习xsd 3

下一篇: 学习xsd