一、枚举介绍
枚举的目的是为了限定一个类的实例,比如Gender只有男、女;
特点:
(1)enum其实是一个特殊的class;
(2)enum类的构造函数必须是私有的;
(3)枚举类可以继承抽象类,实现接口;
(4)switch接受enum值;
语法为:
enum 类名{ 实例1,实例2,实例3.....; 方法、属性、构造函数 }
二、enum语法
1.最简单的enum
enum Fruit{ apple,banana,orange; }
注意:apple、banana、orange是Fruit类的实例;通过Fruit.apple调用;
代码:
public class EnumDemo1 { enum Fruit{ apple,banana,orange; } public static void main(String[] args) { fun(Fruit.banana); } public static void fun(Fruit f){ System.out.println(f); } }
输出banana
2.带构造函数的enum
构造函数必须是私有的;
public class EnumDemo1 { enum Fruit{ apple("1"),banana("2"),orange("3"); private String value; private Fruit(String value){ this.value = value; } } public static void main(String[] args) { fun(Fruit.apple); } public static void fun(Fruit f){ System.out.println(f.value); } }输出:1
3.带抽象方法的enum
public class EnumDemo1 { enum Fruit{ apple("1"){ @Override public String getValue() { return "苹果"; } },banana("2"){ @Override public String getValue() { return "香蕉"; } },orange("3"){ @Override public String getValue() { return "橘子"; } }; private String value; private Fruit(String value){ this.value = value; } public abstract String getValue(); } public static void main(String[] args) { fun(Fruit.apple); } public static void fun(Fruit f){ System.out.println(f.getValue()); System.out.println(f.value); System.out.println(f); } }
输出结果:
苹果 1 apple
4.Enum类方法
常用方法:
(1)Fruit.apple.name(); 获取实例名称
(2)Fruit.apple.ordinal(); 获取此实例的序号;
(3)Fruit f = Fruit.valueOf("实例名称"); 根据实例名称返回实例;
(4)Fruit[] fs = Fruit.values(); 返回Fruit类全部的实例;
public class EnumDemo1 { enum Fruit { apple("1") { @Override public String getValue() { return "苹果"; } }, banana("2") { @Override public String getValue() { return "香蕉"; } }, orange("3") { @Override public String getValue() { return "橘子"; } }; private String value; private Fruit(String value) { this.value = value; } public abstract String getValue(); } public static void main(String[] args) { fun(Fruit.apple); } public static void fun(Fruit f) { System.out.println(f.name() + "的次序:" + f.ordinal()); System.out.println(Fruit.valueOf("orange").getValue()); System.out.println(f.name()); // 输出所有枚举的实例 Fruit[] fs = Fruit.values(); System.out.print("Fruit实例:"); for (Fruit e : fs) { System.out.print(e.getValue() + "、"); } } }
输出结果:
apple的次序:0 橘子 apple Fruit实例:苹果、香蕉、橘子、
相关推荐
关于java枚举的总结: 从入门介绍到项目使用的实际经验归纳总结得出! 从jdk5到jdk8!
以下是对本章主要内容的详细总结: **5.1 Introduction 介绍** - **Union Rule**(并集规则):在离散数学中,如果存在k个互不相交的集合,它们的并集的元素数量等于各集合元素数量的和。用符号表示为:| ∪ … ∪...
### Java 枚举类总结 #### 一、概述与基本概念 枚举类型(`enum`)是Java中的一种特殊类,它允许开发者定义一组命名的常量,并将其视为一个独立的类型。从JDK 1.5版本开始,Java引入了枚举类型,它提供了一种更加...
Java枚举类型是Java语言中一种特殊的类,用于定义固定的常量集合,它提供了一种安全、类型化的方式来表示一组有限的值。枚举在Java中被引入为一个完整的类型,不同于C++中的枚举,这使得Java枚举更加强大且易于使用...
总结来说,Java枚举提供了一种安全、可读的方式来处理一组预定义的常量。通过枚举,我们可以避免硬编码常量,减少错误,提高代码的可维护性。在实际开发中,枚举常用于定义状态、角色、类型等固定集合的场景。通过...
进程枚举是操作系统编程中的一个重要概念,特别是在Windows系统开发中,了解并掌握各种进程枚举方法对于调试、监控以及系统管理都有极大的帮助。本文将详细阐述四种常用的进程枚举技术,帮助开发者更好地理解和运用...
Spring Boot 枚举使用的坑整理是指在使用 Spring Boot 枚举时可能出现的一些问题和解决方法的总结。枚举类型是一种特殊的数据类型,它具有固定的值,且这些值不会被修改。在 Java 中,枚举类型可以使用 enum 关键字...
总结来说,Java枚举类型提供了一种安全、类型安全的方式来定义和使用常量,它可以拥有构造器、方法和字段,并能与switch语句、序列化、反射等Java特性很好地结合。理解并熟练使用枚举,能够使代码更加清晰、易读,...
### Java枚举类型详解 ...#### 五、总结 Java枚举类型是一种强大且灵活的工具,它不仅提高了代码的可读性和可维护性,还增强了类型安全性。通过理解和利用枚举类型的特性,开发者可以编写出更加健壮和高效的程序。
#### 总结 枚举类型和函数返回值是C语言中非常重要的特性,它们能够帮助开发者更好地组织和管理代码。合理利用枚举类型可以提高代码的可读性和可维护性;而通过使用枚举作为函数返回值,则可以让代码更加健壮和易于...
总结起来,枚举USB HUB设备是系统管理和控制USB设备的关键环节。无论是简单的单层枚举还是复杂的多层枚举,都需要操作系统精确地识别和处理每一个设备,以确保系统的正常运行和用户能够顺利地使用外设。在实际开发中...
#### 五、总结 通过本文的讨论可以看出,尽管使用`static final`字段也能实现某些枚举类型的功能,但枚举类型提供的类型安全、扩展性和便捷的方法支持等方面的优势使其成为表示一组固定不变的常量集合时更佳的选择...
### 总结 使用枚举是优化JavaScript代码,特别是处理条件判断语句的一种有效方式。它能提高代码的可读性和可维护性,同时降低了出错的风险。在实际开发中,我们应该根据项目需求选择适合的枚举实现方式,并充分利用...
总结,Spring Boot项目中枚举类型的最佳实践主要包括: 1. 定义枚举类型并提供枚举名称,提高代码可读性。 2. 使用自定义序列化器处理枚举名称和枚举值之间的转换,确保前后端交互的准确性。 3. 在数据库操作中,...
总结来说,"56个民族枚举类"是一种编程实践,用于结构化表示中国56个民族,并方便在程序中进行处理。通过创建枚举,可以提高代码的规范性和可维护性,同时避免了硬编码字符串可能导致的问题。如果提供的文档“56个...
总结起来,通过创建一个枚举工具类,我们可以实现从枚举的描述反向赋值给实体类,简化了处理表单数据的过程,减少了代码的冗余,提高了代码质量。这个技巧在处理多枚举类型的数据时尤其有用,能够显著提升开发效率。
#### 五、总结 通过本文的学习,我们不仅了解了USB枚举的基本概念及其重要性,还深入掌握了如何使用USB Monitor 2.26这款工具来进行USB设备枚举过程的监控和分析。这对于我们理解USB设备如何与主机通信,以及在开发...
总结,`PropertyGrid`中枚举显示为中文,主要依赖于`DescriptionAttribute`和自定义的转换器或`PropertyDescriptor`。这两种方法都提供了良好的可读性,提高了用户体验。在实际项目中,可以根据需求选择适合的方式,...
总结,枚举在Java中是强大且灵活的工具,不仅提供了一种安全、类型安全的方式来表示固定集合的常量,还可以包含方法、实现接口等。在编写枚举时,遵循Java的命名规范,如使用大写字母的驼峰命名法,使代码更具可读性...
总结,Java枚举类型是一种强大的工具,可以用于表示固定数量的常量。它们提供了一种安全、类型化的方式,避免了硬编码常量,增加了代码的可读性和可维护性。通过构造函数、方法、接口实现等特性,枚举可以适应各种...