【JAVA学习之路 | 提高篇】(枚举类)及其实现

简介: 【JAVA学习之路 | 提高篇】(枚举类)及其实现

1.概述

  • 枚举类型本质上也是一种类,只不过这个类的对象是有限的、固定的几个,不能让用户随意创建.
  • 例如 : 星期 : Monday Tuesday ... Sunday    三原色 : red green blue
  • 若枚举类只有一个对象,则可以作为单例模式的一种实现方法.

2.实现

(1). 枚举员工工作状态

public enum Employee {
    BUSY, FREE, VOCATION, DIMISION;
    //空参构造器
}

(2). 枚举四季

public enum Season {
    //必须在枚举类的开头声明多个对象,对象之间用逗号隔开
    SPRING("春天", "春天来了, 又到了动物交配的季节"),
    SUMMER("夏天", "热死我了"),
    AUTOMN("秋天", "秋风凉凉"),
    WINTER("冬天", "凌冬将至");
 
 
    private String seasonName;
    private String seasonDesc;
    private Season(String seasonName, String seasonDesc) {
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }
 
    public String getSeasonName() {
        return seasonName;
    }
 
    public void setSeasonName(String seasonName) {
        this.seasonName = seasonName;
    }
 
    public String getSeasonDesc() {
        return seasonDesc;
    }
 
    public void setSeasonDesc(String seasonDesc) {
        this.seasonDesc = seasonDesc;
    }
}

3.Enum类

  • 使用enum关键字定义的枚举类,默认继承父类是java.lang.Enum类.Enun继承自Object类.
  • 所以不能再显示继承其他类.否则报错

4.Enum中常用方法

  1. String toString() : 默认返回的是变量名.如SPRING,即Enum类中重写了Object类中的toStrimg方法,但仍然可以继续重写.
  2. static 枚举类型 valueOf(String name) : 可以把一个字符串转为对应的枚举类型,要求字符串必须是枚举类型对象的名字(SPRING).即拿着这个字符串去枚举类里找对应的名字的枚举类对象,找到了返回该枚举类对象,没找到就抛出异常.
  3. String name() : 得到当前枚举常量的名称.建议优先使用toString().
相关文章
|
3天前
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
16 1
|
3天前
|
Java 索引
java基础(13)String类
本文介绍了Java中String类的多种操作方法,包括字符串拼接、获取长度、去除空格、替换、截取、分割、比较和查找字符等。
11 0
java基础(13)String类
|
7天前
|
安全 Java 索引
Java——反射&枚举
本文介绍了Java反射机制及其应用,包括获取Class对象、构造方法、成员变量和成员方法。反射允许在运行时动态操作类和对象,例如创建对象、调用方法和访问字段。文章详细解释了不同方法的使用方式及其注意事项,并展示了如何通过反射获取类的各种信息。此外,还介绍了枚举类型的特点和使用方法,包括枚举的构造方法及其在反射中的特殊处理。
30 9
Java——反射&枚举
|
4天前
|
存储 Java
Java编程中的对象和类
【8月更文挑战第55天】在Java的世界中,“对象”与“类”是构建一切的基础。就像乐高积木一样,类定义了形状和结构,而对象则是根据这些设计拼装出来的具体作品。本篇文章将通过一个简单的例子,展示如何从零开始创建一个类,并利用它来制作我们的第一个Java对象。准备好让你的编程之旅起飞了吗?让我们一起来探索这个神奇的过程!
24 10
|
22小时前
|
安全 Java 编译器
java访问类字段
java访问类字段
|
3天前
|
Java
java的class类
java的class类
15 5
|
9天前
|
Java 开发者
Java Character 类详解
Java中的`Character`类是`java.lang`包的一部分,用于将基本类型`char`封装为对象,并提供了丰富的静态方法来处理字符,如类型判断、大小写转换等。
|
3天前
|
Java 数据处理
Java Scanner 类详解
`Scanner` 类是 Java 中 `java.util` 包提供的强大工具,用于从多种输入源(如键盘、文件、字符串)读取数据。本文详细介绍如何创建 `Scanner` 对象并使用其常用方法(如 `next()`, `nextInt()`, `nextLine()` 等)。通过示例代码展示如何从标准输入、字符串及文件中读取数据,并进行输入验证。使用时需注意关闭 `Scanner` 以释放资源,并确保输入类型匹配,避免异常。掌握 `Scanner` 可显著提升程序的数据处理能力。
|
9天前
|
安全 Java
Java StringBuffer 和 StringBuilder 类详解
在 Java 中,`StringBuffer` 和 `StringBuilder` 用于操作可变字符串,支持拼接、插入、删除等功能。两者的主要区别在于线程安全性和性能:`StringBuffer` 线程安全但较慢,适用于多线程环境;`StringBuilder` 非线程安全但更快,适合单线程环境。选择合适的类取决于具体的应用场景和性能需求。通常,在不需要线程安全的情况下,推荐使用 `StringBuilder` 以获得更好的性能。
|
9天前
|
Java 索引
Java String 类详解
Java 中的 `String` 类用于表示不可变的字符序列,是 Java 标准库 `java.lang` 包的一部分。字符串对象一旦创建,其内容不可更改,修改会生成新对象。