在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中的枚举类型2:高级特性 #### 概述 枚举类型是Java语言中一个非常实用且灵活的功能。通常情况下,我们将其用于表示一组固定的常量集合,如一周中的几天、颜色选项等。然而,Java中的枚举类型远不止于此。...
在Java 5中,枚举类型作为一种新特性被引入,主要用于定义一组固定的、相关的常量集合。通过枚举类型,我们可以更加清晰地组织并限制程序中可用的常量选项,从而提高代码的可读性和可维护性。 例如,在文档中提到的...
在本课程"02-课件:第2部分:Java高级编程.zip"中,宋红康老师深入讲解了Java语言的高级编程概念和技术。这个压缩包包含了一系列课件,旨在帮助学习者掌握Java编程的精髓,提升编程技能。以下是根据课程内容提炼出的...
4. 枚举:枚举类型是Java的一个特色,它提供了一种创建固定数量的常量集的方式,比传统的int常量更安全,更易于维护。 5. 集合框架:Java集合框架包括接口(如List、Set、Map)和实现(如ArrayList、HashSet、...
该书分为两个部分,第一部分主要涵盖了Java的高级编程概念,包括多线程、网络编程、I/O流、集合框架、反射、枚举类型、注解、泛型、类型推断、NIO.2、并发工具类、XML处理以及Java安全模型等。这些章节详细讲解了...
在Java高级面试中,面试官通常会关注候选人在核心Java、多线程、集合框架、JVM内存管理、设计模式、数据库操作、网络编程、异常处理、IO流、Spring框架及其实现原理等方面的知识掌握程度。以下是根据这些关键点展开...
- **枚举(Enum)**:Java的枚举类型为有限集合提供了更安全的表示方式,常用于定义常量集合并支持方法。 - **Lambda表达式**:Java 8引入的新特性,简化了函数式编程,使得代码更加简洁和易读。 2. **Web开发...
本篇文章将深入探讨Java中枚举的高级用法,通过实际示例帮助你更好地理解和应用这些特性。 1. 枚举的定义: 创建枚举类型的基本语法是`public enum EnumName { elements }`。例如,创建一个表示星期的枚举: ```...
本篇文章将深入探讨Java枚举的特性、用法以及如何在实际开发中充分利用它们。 一、枚举的基本用法 1. 声明枚举类型: ```java public enum Color { RED, GREEN, BLUE } ``` 在这里,`Color`是枚举类型,`RED`, `...
10. **Java高级特性** - 泛型:类型参数的引入,提高代码复用性。 - 枚举:枚举类型的创建与使用。 - 注解:自定义注解及其元注解的应用。 - Lambda表达式与函数式编程:简化代码,提升效率。 11. **Java EE...
Java中的枚举类型`Enum`是面向对象编程中一种强大的工具,它允许程序员定义自己的常量集合。在Java中,枚举类型不是简单的常量数组,而是一种完整的类,具有类的所有特性,如方法、构造函数和继承。下面将详细探讨`...
在这个例子中,`Color`是一个枚举类型,`RED`, `GREEN`, `BLUE`是该枚举类型的三个实例,它们都是`Color`类型的对象。 枚举的特性包括: 1. **预定义的方法**:每个枚举类型都自动继承了`java.lang.Enum`类,因此...
Java语法手册是编程者在学习或工作...以上只是Java语法手册中部分核心知识点的概述,实际手册会包含更多细节,如枚举、注解、并发工具类、集合框架的高级特性和JVM优化等内容,帮助开发者深入理解并熟练掌握Java编程。
**Java面试题汇总** ...这些知识点不仅涵盖了Java的基础,还包括了高级特性和实战经验,对于准备Java面试的开发者来说,是必备的学习资源。通过深入理解和熟练应用这些概念,能够有效地提升面试成功率。
在本课程"JAVA-2-Object-Oriented-Programming-II-:高级Java项目"中,我们将深入探索Java编程语言的面向对象特性,并通过实践项目来巩固这些知识。这个课程主要针对已经掌握Java基础的开发者,旨在提升他们的技能,...
对于Java面试,除了Android特定的知识外,还需要掌握Java语言特性和高级特性,例如反射、枚举、集合框架、并发编程、JVM内存模型等。同时,对于软件工程、设计原则和编程规范也是考察的重点。准备面试时,不仅要理解...
2. **面向对象高级特性** - 内部类:了解匿名内部类、成员内部类、局部内部类的用法。 - 泛型:理解泛型的限制,能使用泛型类、泛型方法和通配符。 - 接口:掌握接口的定义、实现与多接口继承。 - 枚举:理解...
- 枚举类型:Java中枚举的创建和使用,以及枚举在设计模式中的应用。 - 泛型:了解泛型的概念,如何在类、接口和方法中使用泛型以提高代码的类型安全性。 3. **异常处理** - 自定义异常:创建和抛出自定义异常,...
9. **Java高级特性** - 注解(Annotation):理解注解的定义和使用,以及元注解。 - 泛型:掌握泛型的使用,提高代码的类型安全性和重用性。 - 枚举:了解枚举类型,学习枚举的使用场景。 10. **Java SE和Java ...