当前位置: 首页 > news >正文

【Java枚举类】使用enum关键词定义枚举类

使用说明

1.使用 enum 定义的枚举类默认继承了 java.lang.Enum类,因此不能再继承其他类

2.枚举类的构造器只能使用 private 权限修饰符

3.枚举类的所有实例必须在枚举类中显式列出(, 分隔 ; 结尾)。列出的 实例系统会自动添加 public static final 修饰

4.必须在枚举类的第一行声明枚举类对象

JDK 1.5 中可以在 switch 表达式中使用Enum定义的枚举类的对象作为表达式, case 子句可以直接使用枚举值的名字, 无需添加枚举类作为限定

=========================================================================

 使用enum关键词定义枚举类

步骤如下:

1.提供当前枚举类的多个对象,多个对象之间用“,“隔开,末尾对象";"结束
2.声明Season对象的属性:private final修饰
3.私有化类的构造器,并给对象属性赋值

下面以上篇文章自定义枚举类改写

public class SeasonTest01 {public static void main(String[] args) {Season1 summer = Season1.SUMMER;System.out.println(summer);}
}
//使用enum关键词枚举类
enum Season1{//1.提供当前枚举类的多个对象,多个对象之间用“,“隔开,末尾对象";"结束SPRING ("春天","春暖花开"),SUMMER ("夏天","夏日炎炎"),AUTUMN ("秋天","秋高气爽"),WINTER ("冬天","冰天雪地");//2.声明Season对象的属性:private final修饰private final String seasonName;private final String seasonDesc;//3.私有化类的构造器,并给对象属性赋值private Season1(String seasonName,String seasonDesc){this.seasonName = seasonName;this.seasonDesc = seasonDesc;}//4.其他诉求1:获取枚举类对象的属性public String getSeasonName() {return seasonName;}public String getSeasonDesc() {return seasonDesc;}//4.其他诉求1:提供toString()
//    @Override
//    public String toString() {
//        return "Season1{" +
//                "seasonName='" + seasonName + '\'' +
//                ", seasonDesc='" + seasonDesc + '\'' +
//                '}';
//    }
}

如上代码,我们将toString()注释,运行结果如下:

我们可以看到运行结果并不是地址值。所以Season1的父类不是object

下面,我们查看一下它的父类

System.out.println(Season1.class.getSuperclass());

 将上述代码加入代码如下:

public class SeasonTest01 {public static void main(String[] args) {Season1 summer = Season1.SUMMER;System.out.println(summer);System.out.println(Season1.class.getSuperclass());}
}
//使用enum关键词枚举类
enum Season1{//1.提供当前枚举类的多个对象,多个对象之间用“,“隔开,末尾对象";"结束SPRING ("春天","春暖花开"),SUMMER ("夏天","夏日炎炎"),AUTUMN ("秋天","秋高气爽"),WINTER ("冬天","冰天雪地");//2.声明Season对象的属性:private final修饰private final String seasonName;private final String seasonDesc;//3.私有化类的构造器,并给对象属性赋值private Season1(String seasonName,String seasonDesc){this.seasonName = seasonName;this.seasonDesc = seasonDesc;}//4.其他诉求1:获取枚举类对象的属性public String getSeasonName() {return seasonName;}public String getSeasonDesc() {return seasonDesc;}//4.其他诉求1:提供toString()
//    @Override
//    public String toString() {
//        return "Season1{" +
//                "seasonName='" + seasonName + '\'' +
//                ", seasonDesc='" + seasonDesc + '\'' +
//                '}';
//    }
}

运行结果如下:

 说明:定义的枚举类默认继承于java.lang.Enum类

我们可以重写toString()的方法

http://www.lryc.cn/news/39054.html

相关文章:

  • 第十四届蓝桥杯三月真题刷题训练——第 8 天
  • 鼎阳SDS2074X Plus免费“升级”(破解)备忘录
  • 【C++】C++标准模板库STL (一) string类的使用详解
  • 如何用SpringBoot+Thymeleaf+Echart生成好看的柱状图,折线图,饼状图
  • LeetCode819. 最常见的单词(python)
  • 【深入理解C指针】经典笔试题——指针和数组
  • 雷达散射截面
  • 希腊棺材之谜——复盘
  • CentOS的下载和安装
  • new bing的chatGPT如何解析英文论文pdf
  • 学会这12个Python装饰器,让你的代码更上一层楼
  • 企业使用ERP的好处
  • 【QT】如何获取屏幕(桌面)的大小或分辨率
  • ETL工具的选择
  • SpringBoot仿天猫商城java web购物网站的设计与实现
  • C#基础教程22 文件的输入与输出
  • Ubuntu18.04 python 开发usb通信
  • RabbitMq 消息确认机制详解 SpringCloud
  • 后台导航布局
  • 设计模式——抽象工厂模式(创建型)
  • Java面试题--SpringMVC的执行流程
  • c# 32位程序突破2G内存限制
  • 【C语言】指针详解总结
  • Java加解密(八)工具篇
  • Go框架三件套(Web/RPC/ORM)
  • HR问:假如公司给不到你期望的薪资怎么办?这个问题该如何体面地回答?
  • LearnOpenGL-高级OpenGL-2.模板测试
  • 【Git从入门到精通】Git入门
  • 软件测试18
  • C语言实现快速排序(hoare法、挖坑法、前后指针法与非递归实现)——不看后悔系列