【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().
相关文章
|
2月前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
164 57
|
15天前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
2月前
|
Java
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
java小工具util系列4:基础工具代码(Msg、PageResult、Response、常量、枚举)
58 24
|
2月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
66 8
|
2月前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
79 17
|
2月前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
2月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
140 4
|
2月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
2月前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
87 2
|
2月前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
74 4