`
netatomy
  • 浏览: 44075 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java中的枚举类型-2:高级特性

    博客分类:
  • Java
阅读更多

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

enum Weekday {
    SUNDAY("SUN"), 
    MONDAY("MON"), 
    TUESDAY("TUE"), 
    WEDNESDAY("WED"), 
    THURSDAY("THU"), 
    FRIDAY("FRI"), 
    SATURDAY("SAT");

    private String abbr;

    public Weekday(String abbr) {
        this.abbr = abbr;
    }

    public getAbbreviation() {
        return abbr;
    }

}

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

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

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

public enum SomeEnum {
    CONST_A, CONST_B, CONST_C {
        public void someMethod() {
            System.out.println("another description");
        }
    };

    public void someMethod() {
        System.out.println("default description");
    }
}

 

通过CONST_A和CONST_B调用someMethod()方法,屏幕上会打印 default description,而通过CONST_C调用someMethod()方法,则会打印 another description。

 

参考书籍:《Java编程思想》《SCJP考试指南》

分享到:
评论

相关推荐

    Java 高级特性.doc

    JAVA高级特性 1.静态导入:先举个离例子 。 import java.lang.Integer.parseInt; public class StaticImport { int x = parseInt("123"); System.out.println(x); } 这样的程序如果不在IDE 工具中输入,是很难...

    积分管理系统java源码-knowledge:这是我的知识,包括我所有已知的

    IOC容器设计原理及高级特性 AOP设计原理 FactoryBean和BeanFactory Spring事务处理机制 Spring JDBC Spring MVC九大组件 手动实现Spring MVC Spring5新特性 Mybatis 代码自动生成器 mybatis关联查询和嵌套查询 缓存...

    gosu-lang:Gosu编程语言

    Gosu功能: 开放式系统高级类型推断程序文件(脚本包含相同级别的语句,函数和类) 结构化类型(类似于TypeScript的接口) 扩展方法(又名增强功能) Java互操作性Lambda表达式类/接口/枚举泛型(已修正,协变类型...

    Thinking in Java 4th Edition(中文扫描版-带目录和源码)

    本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、JavaI/O系统、枚举类型、并发以及图形化用户界面等内容。这些丰富的内容,包含了...

    java学习笔记 初学者必读

    2.2. Java中基本概念 2-5 3. 二•定义,关键字和类型 3-5 3.1. 注释的三种形式 3-5 3.2. Java代码中的“;”、“{}”、“ ” 3-5 3.3. 标识符 3-5 3.4. 数据类型 3-6 3.5. 命名规则 3-6 4. 三•表达式和控制流 4-6 ...

    Java高手真经 编程基础卷.part2.rar

    Java高级特性:反射、泛型、注释符、自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入。随书附赠光盘内容为《Java高手真经(编程基础卷):Java核心编程技术》各种原型包、系统源程序。

    Java核心编程技术源码

    Java高级特性:反射、泛型、注释符、自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入。随书附赠光盘内容为《Java高手真经(编程基础卷):Java核心编程技术》各种原型包、系统源程序。《Java高手...

    corejavaNoteBook

    2.2. Java中基本概念 2-5 3. 二•定义,关键字和类型 3-5 3.1. 注释的三种形式 3-5 3.2. Java代码中的“;”、“{}”、“ ” 3-5 3.3. 标识符 3-5 3.4. 数据类型 3-6 3.5. 命名规则 3-6 4. 三•表达式和控制流 4-6 ...

    Java2核心技术.part5

    3.5.8枚举类型 3.6字符串 3.6.1代码点与代码单元 3.6.2子串 3.6.3字符串编辑 3.6.4拼接 3.6.5检测字符串是否相等 3.6.6阅读联机API文档 3.7输入输出 3.7.1读取输入 3.7.2格式化输出 ...

    Java开发详解.zip

    010301_【第3章:Java基础程序设计】_Java数据类型笔记.pdf 010302_【第3章:Java基础程序设计】_运算符、表达式与语句笔记.pdf 010303_【第3章:Java基础程序设计】_判断与循环语句笔记.pdf 010401_【第4章:数组与...

    Java高手真经 编程基础卷.part1.rar

    Java高级特性:反射、泛型、注释符、自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入。随书附赠光盘内容为《Java高手真经(编程基础卷):Java核心编程技术》各种原型包、系统源程序。

    Java高手真经 编程基础卷.part3.rar

    Java高级特性:反射、泛型、注释符、自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入。随书附赠光盘内容为《Java高手真经(编程基础卷):Java核心编程技术》各种原型包、系统源程序。

    Java高手真经 编程基础卷.part4.rar

    Java高级特性:反射、泛型、注释符、自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入。随书附赠光盘内容为《Java高手真经(编程基础卷):Java核心编程技术》各种原型包、系统源程序。

    JAVA编程Bruce Eckel

    本书赢得了全球程序员的广泛赞誉,即使是最晦涩的...这些丰富的内容,包含了Java语言基础语法以及高级特性,适合各个层次的Java程序员阅读,同时也是高等院校讲授面向对象程序设计语言以及Java语言的绝佳教材和参考书。

    回顾 Java SE 基础实现代码 Java学习资料 自学资料

    类的高级特性 final 内部类 枚举与泛型 异常处理 集合 I/O 反射 多线程 网络通信 经典项目( IMS: 进销存管理系统) 系统分析与设计 开发环境与软件架构 数据库设计 项目组织结构 公共类 功能模块 系统登录模块 进货...

    Java2核心技术.part2

    3.5.8枚举类型 3.6字符串 3.6.1代码点与代码单元 3.6.2子串 3.6.3字符串编辑 3.6.4拼接 3.6.5检测字符串是否相等 3.6.6阅读联机API文档 3.7输入输出 3.7.1读取输入 3.7.2格式化输出 ...

    Thinking in Java(4th_en)_7

    本书赢得了全球程序员的广泛赞誉,即使是最晦涩的...这些丰富的内容,包含了Java语言基础语法以及高级特性,适合各个层次的Java程序员阅读,同时也是高等院校讲授面向对象程序设计语言以及Java语言的绝佳教材和参考书。

Global site tag (gtag.js) - Google Analytics