首页 > 其他分享 >JKD1.5之后利用关键字Enum来创建枚举类

JKD1.5之后利用关键字Enum来创建枚举类

时间:2022-10-20 13:56:50浏览次数:58  
标签:String Season Enum seasonDesc seasonName 枚举 JKD1.5 public

JDK1.5之后使用Enum关键字创建枚举类

 

变成下面的枚举类

 

package com.msb.enum02;

/**
 * 开发人:liu
 * 日期:16:01:37
 * 描述:定义枚举类:季节
 * 版本:1.0
 */
public enum  Season {
    //提供枚举类的有限的  确定的对象:--->enum枚举类要求对象(常量)必须放在最开始的位置
    //多个对象之间,进行连接,最后一个对象后面用;结束
    SPRING("春天","生机勃勃"),
    SUMMER("夏天","烈日炎炎"),
    AUTUMN("秋天","硕果累累"),
    WINTER("冬天","白雪皑皑");
    //属性:
    private final String seasonName;//季节的名字
    private final String seasonDesc;//季节描述
    //利用构造器对属性进行赋值操作:
    //构造器私有化,外界不能调用这个构造器,只能Season内部自己调用
    private Season(String seasonName, String seasonDesc){
        this.seasonName=seasonName;
        this.seasonDesc=seasonDesc;
    }

    //提供Get方法
    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }
    //对toString进行重写
    @Override
    public String toString() {
        return "Season{" +
                "seasonName='" + seasonName + '\'' +
                ", seasonDesc='" + seasonDesc + '\'' +
                '}';
    }
}

使用枚举类

public class Test {
    //这是一个main方法:是程序的入口
    public static void main(String[] args) {
        Season summer = Season.SUMMER;
        System.out.println(summer);
        //enum关键字对应的枚举类的上层父类是:java.lang.Enum
        //但是我们自定义的枚举类的上层父类:object
        System.out.println(Season.class.getSuperclass().getName());
    }
}

在源码中经常看到别人定义的枚举类形态:

public enum Season {
    SPRING,
    SUMMER,
    AUTUMN,
    WINTER;   
}

为什么这么简单:因为这个枚举类底层没有属性,属性,构造器,toString,get方法都删掉不写了,然后按理来说应该写为:SPRING()现在连()可以省略就变成SPRING

案例:Thread类下面的State枚举类

 

标签:String,Season,Enum,seasonDesc,seasonName,枚举,JKD1.5,public
From: https://www.cnblogs.com/jeldp/p/16809586.html

相关文章

  • Enum类的常用方法
    publicclassTest{//这是一个main方法:是程序的入口publicstaticvoidmain(String[]args){//使用enum关键字创建的Season枚举类上面的父类是:java......
  • 枚举引入
    【1】数学:枚举法:1<x<42<y<8求x+y=6枚举法:一枚一枚的列举出来。前提:有限,确定【2】在java中,类的对象是有限个,确定的。这个类我们可以定义为枚举类举例:星期:一二三四五......
  • 驱动开发:内核枚举ShadowSSDT基址
    在笔者上一篇文章《驱动开发:Win10枚举完整SSDT地址表》实现了针对SSDT表的枚举功能,本章继续实现对SSSDT表的枚举,ShadowSSDT中文名影子系统服务描述表,SSSDT其主要的作用是管......
  • 驱动开发:Win10枚举完整SSDT地址表
    在前面的博文《驱动开发:Win10内核枚举SSDT表基址》中已经教大家如何寻找SSDT表基地址了,找到后我们可根据序号获取到指定SSDT函数的原始地址,而如果需要输出所有SSDT表信息,则......
  • 驱动开发:Win10内核枚举SSDT表基址
    三年前面朝黄土背朝天的我,写了一篇如何在Windows7系统下枚举内核SSDT表的文章《驱动开发:内核读取SSDT表基址》三年过去了我还是个单身狗,开个玩笑,微软的Windows10系统已经......
  • 驱动开发:Win10内核枚举SSDT表基址
    三年前面朝黄土背朝天的我,写了一篇如何在Windows7系统下枚举内核SSDT表的文章《驱动开发:内核读取SSDT表基址》三年过去了我还是个单身狗,开个玩笑,微软的Windows10系统已经......
  • Python中的枚举类enum
    0.本文来历上一篇文章,我写了Pytest插件pytest-order指定用例顺序我当时就比较好奇它的顺序和英文的对应关系,肯定是写死的,找了下就发现在源码sorter.py中定义了一......
  • 驱动开发:内核枚举Minifilter微过滤驱动
    Minifilter是一种文件过滤驱动,该驱动简称为微过滤驱动,相对于传统的sfilter文件过滤驱动来说,微过滤驱动编写时更简单,其不需要考虑底层RIP如何派发且无需要考虑兼容性问题,微......
  • 浅谈C语言中的常量(字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量
    一.常量不会变的量就是常量,比如性别,血型等;二.常量的分类1.字面常量2.const修饰的常变量3.#define定义的标识符常量4.枚举常量1.字面常量2.const修饰的常变量    在......
  • 结构体,枚举,联合体
    为什么有自定义类型?   C语言中的数据类型有int,float,double,short,char等,但是对于一些复杂的结构体我们还是不能用我们已有的类型来进行定义。比如说你想要描述一个人,你可......