`

Java 枚举的常用方法

    博客分类:
  • Java
 
阅读更多

   在Java中,枚举类型本质上其实就是一个类,枚举中的常量都是该枚举类型的实例。虽然枚举类型有一些限制,比如不能再派生出子枚举类型,不能调用构造函数,不过我们仍然可以在枚举类型中定义构造函数、字段和方法。

    java枚举类的构造函数为何只能是私有的。因为枚举类型是单例模式的。你需要实例化一次,然后再整个程序之中就可以调用他的方法和成员变量了。
枚举类型使用单例模式是因为他的值是固定的,不需要发生改变。

例如:

public class Test {
    enum Weekday {
        SUNDAY("SUN"), MONDAY("MON"), TUESDAY("TUE") {
            public void someMethod() {
                System.out.println("TUESDAY");
            }
        };
        private String abbr;
        private Weekday(String abbr) {
            this.abbr = abbr;
        }
        private Weekday() {
        }
        public String getAbbreviation() {
            return abbr;
        }
        //很方便的一种用法
        public boolean isSunday() {
            return this == SUNDAY;
        }
        public boolean isMonday() {
            return this == MONDAY;
        }
        public boolean isTuesday() {
            return this == TUESDAY;
        }
        public void someMethod() {
            System.out.println("DEFAULT");
        }
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        Weekday sunday = Weekday.SUNDAY;
        String sundayName = sunday.name();
        sunday = Weekday.valueOf(sundayName);
        System.out.println("sundayName:" + sundayName + " isSunday:"
                + sunday.isSunday());
        sunday.someMethod();
        Weekday.TUESDAY.someMethod();
    }

 上面的代码中,Weekday枚举有一个构造函数,这个构造函数是不能通过new语句调用的,不过可以在声明常量的时候进行调用,只要要常量后面加上括号并传递参数进去就可以了,这样不同的常量对象都有了不同的属性值,这个值存储在字段abbr中。另外这个枚举类型还定义了方法,在获得了对某个常量的引用后,就可以调用它的getAbbreviation()方法。例如:

 System.out.println(Weekday.SUNDAY.getAbbreviation());  

 

 枚举类型还有一个特殊的功能,就是在声明常量的时候可以重写枚举中的方法,从而达到某种“多态”的效果.

 Weekday.TUESDAY.someMethod();打印"TUESDAY",其他的打印”DEFAULT“。

总的运行结果如下:

sundayName:SUNDAY isSunday:true
DEFAULT
TUESDAY

分享到:
评论

相关推荐

    全面掌握java枚举类型(enum-type)1

    在 Java 语言中,没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有 int 常量。这种方式称作 int 枚举模式。例如,定义一个 Season 类,使用 public static final int 来定义四季: ```java public ...

    Java枚举类使用场景及实例解析

    枚举类的 API 参考 JDK api 1.8.CHM,可以看到枚举类的常用 API 如下: 1. name() 方法:返回此枚举常量的名称,与其枚举声明中声明的完全相同。大多数程序员应该使用 toString() 方法,因为 toString 方法可能会...

    常用的MIME TYPE类型枚举类Enum整理 静态方法直接检索使用

    性能优化:由于使用了枚举而非动态查找,`MimeTypeEnum.java`在性能上表现优异,即使是高并发场景下也能保持稳定响应。 适用人员:Java开发者,及需要手动维护一份MIME类型列表但又不想耗时的 示例代码:String mime...

    优雅地在Java应用中实现全局枚举处理的方法

    我们在查数据的时候,又能将数据库的数字转换成java枚举类,在处理完对应的业务逻辑之后,将枚举和枚举类对应的展示信息一起传递到前台,前台不需要维护这个枚举类和展示信息的对应关系,同时展示信息支持国际化处理...

    Java枚举类型enum的详解及使用

    Java 枚举类型 enum 是 Java 语言中的一种特殊的数据类型,自从 JDK 1.5 引入枚举类型以来,它已经成为了 Java 程序员中的一种常用工具。本文将对 Java 枚举类型 enum 进行详解,并介绍其使用方法。 一、枚举类型的...

    Java 常用武器库之枚举1

    Java中的枚举是一种强大的工具,它提供了一种安全的方式来表示有限的、预定义的值集合。在Java中,枚举是通过`enum`关键字来定义的,它实际上是一种特殊的类,具备了一些内置的特性,使得枚举在处理固定的、有限的...

    Java常用类和枚举类型.pdf

    Integer类中还包含了一些常用的方法,例如: - `valueOf(String str)`:返回String型参数值的Integer对象。 - `parseInt(String str)`:返回与String型参数值等价的int值。 - `toString()`:返回表示Integer值的...

    java中枚举的详细使用介绍

    - `toString`:返回枚举实例的名称,这通常是枚举常量的字符串形式,比`name`方法更常用。 - `valueOf`:根据枚举名称字符串返回对应的枚举实例。 此外,枚举可以包含私有构造函数和方法,以便初始化枚举实例和实现...

    Java 枚举类型使用小技巧

    这种方法简洁且易于理解,是处理枚举集合的常用方式。 总之,Java的枚举类型提供了丰富的特性,包括嵌套枚举、接口实现、自定义方法和枚举映射等。通过这些技巧,开发者可以更好地组织枚举常量,增加代码的可读性...

    用enum实现单例模式的方法来读取配置文件

    在Java编程中,单例模式是一种常用的创建型设计模式,它保证了类只有一个实例,并提供一个全局访问点。单例模式常用于管理共享资源,如配置文件的读取。本篇将详细介绍如何利用枚举(enum)来实现单例模式,并结合`...

    Java枚举(深刻而不深沉平淡而不平庸)

    Java枚举是编程语言中的一个强大特性,它在很多场景下优于传统的整数常量或字符串常量,提供了更安全、类型安全以及可维护性更好的方式来定义一组固定的值。以下将详细介绍Java枚举的各个方面。 1. 枚举概述: 在...

    Java+单例+多例+工厂+枚举+动态代理===》演示

    单例设计模式案例演示 单例模式,是一种常用的软件设计模式。通过单例模式可以保证系统中,**应用该模式的这个类只有一个实例**。即一个类只有一个对象实例...枚举的定义和使用 工厂设计模式案例演示 动态代理案例演示

    Java中枚举类型的使用.docx

    在Java语言中,一种常用的定义固定常量的方式是使用`enum`(枚举)类型。本文将详细介绍如何在Java中使用枚举类型,并通过一个具体的例子来展示其优势。 #### 二、枚举类型概述 **枚举类型**是一种特殊的类,用于...

    Java集合、泛型和枚举

    接下来,我们详细讨论`Collection`接口及其常用方法。`Collection`接口提供了许多基本操作,如添加元素、删除元素、检查元素存在性等。例如,`add(E e)`方法用于向集合中添加一个指定的元素,`addAll(Collection c)`...

    JAVA中的枚举类型1:基本用法.doc

    实际上,Java编译器会自动调用`ordinal()`方法获取枚举成员的位置编号,然后根据该编号进行匹配。 #### 五、遍历枚举类型 枚举类型还提供了一种方便的方式来遍历所有枚举成员,即通过静态方法`values()`。尽管在...

    java常用工具类

    9. **枚举**:Java枚举是一种特殊的类,允许创建有限数量的实例,常用于表示固定集合中的选项。枚举可以有方法,也可以实现接口,增强了代码的可读性和安全性。 10. **功能接口与Lambda表达式**:Java 8引入了函数...

    计算机后端-Java-Java核心基础-第23章 枚举类与注解 07. Enum类中的常用方法.avi

    计算机后端-Java-Java核心基础-第23章 枚举类与注解 07. Enum类中的常用方法.avi

    java开发常用API

    在Java开发中,以下是一些常用API的知识点: 1. **集合框架**:Java集合框架是处理对象集合的一系列接口和类,包括List(如ArrayList和LinkedList)、Set(如HashSet和TreeSet)和Map(如HashMap和TreeMap)。这些...

    计算机后端-Java-Java核心基础-第23章 枚举类与注解 21. Collection接口中的常用方法1.avi

    计算机后端-Java-Java核心基础-第23章 枚举类与注解 21. Collection接口中的常用方法1.avi

    java常用方法和方法大全

    在Java编程中,掌握常用的方法和函数对于提升编程效率至关重要。以下是一些Java中的关键知识点,这些知识点涵盖了各种常用方法和技巧。 1. **字符串操作**: - `String`类:Java中的字符串是不可变的,`substring...

Global site tag (gtag.js) - Google Analytics