day076:枚举

6 篇文章 0 订阅
1 篇文章 0 订阅

目录

一、枚举

1.什么是枚举

2.枚举的格式

3.枚举的特点

4.代码示例

5.枚举常用方法


一、枚举

1.什么是枚举

枚举:包含一些定义好的特定的值,比如星期、季节 

2.枚举的格式

格式:public enum 枚举类名{ 枚举项1,枚举项2,...; }

3.枚举的特点

  • 1.所有的枚举类都是Enum的子类
  • 2.可以通过“枚举类名.枚举项名称”去访问指定的枚举项 
  • 3.每一个枚举项都是该枚举类的一个对象 
  • 4.枚举也是一个类,也可以定义成员变量 
  • 5.枚举的第一行必须是枚举项,最后的分号不建议省略 
  • 6.枚举类也可以有构造器,但必须是private的;枚举项的用法: 枚举("") 
  • 7.枚举类也可以有抽象方法,但枚举项必须重写该方法

4.代码示例

public class EnumDemo_02 {
    public static void main(String[] args) {

        //2.可以通过“枚举类名.枚举项名称”去访问指定的枚举项
        System.out.println(SeasonDemo_01.SPRING);
        System.out.println(SeasonDemo_01.SUMMER);
        System.out.println(SeasonDemo_01.AUTUMN);
        System.out.println(SeasonDemo_01.WINTER);

        //3.每一个枚举项都是该枚举类的一个对象
        SeasonDemo_01 spring = SeasonDemo_01.SPRING;//变量的类型是SeasonDemo_01类型

        //4.枚举也是一个类,也可以定义成员变量

        //5.枚举的第一行必须是枚举项,最后的分号不建议省略

        //6.枚举类也可以有构造器,但必须是private的;枚举项的用法: 枚举("")

        // 7.枚举类也可以有抽象方法,但枚举项必须重写该方法

    }
}

public enum SeasonDemo_01 {
    SPRING("春") {
        @Override
        public void show() {
            System.out.println(this.name);
        }
        //如果枚举类中有抽象方法,就必须在枚举项中重写
    }, SUMMER("夏") {
        @Override
        public void show() {
            System.out.println(this.name);
        }
    }, AUTUMN("秋") {
        @Override
        public void show() {
            System.out.println(this.name);
        }
    }, WINTER("冬") {
        @Override
        public void show() {
            System.out.println(this.name);
        }
    };

    public String name;

    //空参构造
    private SeasonDemo_01() {
    }

    //有参构造
    private SeasonDemo_01(String name) {
        this.name = name;
    }

    //抽象方法
    public abstract void show();

}

5.枚举常用方法

  • String name() 获取枚举项名称
    
  • int ordinal() 返回枚举项在枚举类中的索引值
    
  • int compareTo( E o) 比较俩个枚举项,返回的是索引值的差值
    
  • String toString() 返回枚举项的名称
    
  • static <T> valueOf(Class<T> type, String name) 获取指定枚举类中的指定名称的枚举值
  • values() 获得所有的枚举项

代码示例:

public class EnumDemo {
    public static void main(String[] args) {
        //String name() 获取枚举项名称
        Season name = Season.SPRING;
        System.out.println(name);
        System.out.println("-------------------------------");
        //int ordinal() 返回枚举项在枚举类中的索引值
        int index1 = Season.SPRING.ordinal();
        int index2 = Season.SUMMER.ordinal();
        int index3 = Season.AUTUMN.ordinal();
        int index4 = Season.WINTER.ordinal();
        System.out.println(index1);
        System.out.println(index2);
        System.out.println(index3);
        System.out.println(index4);
        System.out.println("-------------------------------");
        //int compareTo( E o) 比较俩个枚举项,返回的是索引值的差值
        int result = Season.SPRING.compareTo(Season.WINTER);
        System.out.println(result);
        System.out.println("-------------------------------");
        //String toString() 返回枚举项的名称
        String s = Season.SPRING.toString();
        System.out.println(s);
        System.out.println("-------------------------------");
        //static <T> valueOf(Class<T> type, String name)
        //获取指定枚举类中的指定名称的枚举值
        Season spring = Enum.valueOf(Season.class, "SPRING");
        System.out.println(spring);
        System.out.println("-------------------------------");

        //values() 获得所有的枚举项
        Season[] values = Season.values();
        for (Season value : values) {
            System.out.println(value);
        }

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZQyyds:)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值