java29常用类之Enum(枚举类)
枚举类的用法
枚举类的用法枚举是Java语言中一个非常重要且常用的特性。
枚举是一种特殊的数据类型,它用来定义一组具有相同属性的常量。
1. 定义枚举类型枚举类型是通过使用enum关键字来定义的。
它的语法格式如下所示:enum 枚举名{枚举值1, 枚举值2, …, 枚举值n}2. 枚举变量的定义和使用在枚举类型中,常量是通过枚举值来表示的。
我们可以通过调用枚举类的valueOf()方法来获得枚举值对应的实例,也可以使用枚举类的name()方法来获取枚举值的名称。
例如:enum Color {RED, GREEN, BLUE}Color red = Color.RED;System.out.println(red); // 输出 REDSystem.out.println(()); // 输出 REDSystem.out.println(Color.GREEN); // 输出 GREEN3. 枚举类型的属性和方法枚举类型也可以拥有自己的属性和方法。
我们可以通过定义枚举类型中的构造函数来为枚举类型添加构造方法,从而定义枚举类型的属性。
例如:enum Direction {EAST("东"), SOUTH("南"), WEST("西"), NORTH("北");private String desc;private Direction(String desc) {this.desc = desc;}public String getDesc() {return desc;}}Direction east = Direction.EAST;System.out.println(east.getDesc()); // 输出东4. 枚举类型的用途枚举类型的用途非常广泛,通常用于以下方面:4.1. 定义常量枚举类型可以用于定义一组常量,表示某个特定的状态或属性。
java枚举类型enum用法 switch-概述说明以及解释
java枚举类型enum用法switch-概述说明以及解释1.引言1.1 概述在计算机编程中,枚举类型(enum)是一种特殊的数据类型,用于表示一组具名的常量。
与普通的变量不同,枚举类型的取值是有限且固定的,它将一系列具有相似属性或关联关系的常量进行分组,方便在程序中进行使用和管理。
在Java编程语言中,枚举类型是一种独立的类,它可以包含多个枚举常量,并且允许定义属性和方法。
枚举类型的定义方式简单明了,可以帮助程序员更好地组织和管理常量。
本文将重点介绍Java中枚举类型enum的用法,并阐述枚举类型在switch语句中的应用。
首先,我们将讨论枚举类型的定义和声明,包括如何创建枚举类型以及如何给枚举常量赋值。
接着,我们将探讨枚举类型的属性和方法,包括如何为枚举常量定义属性和方法,以及如何在程序中使用它们。
最后,我们将重点关注枚举类型在switch语句中的应用,介绍如何使用switch语句处理枚举类型的不同取值。
通过本文的学习,读者将能够更好地掌握枚举类型enum的用法,进一步提升自己的编程能力。
接下来,我们将详细介绍枚举类型的定义和声明。
1.2 文章结构本文将按照以下结构来探讨Java枚举类型(enum)以及其在switch 语句中的应用。
1. 引言1.1 概述在引言部分,我们将简要介绍Java枚举类型(enum)的基本概念和作用,以及本文的目的和重要性。
1.2 文章结构(当前部分)在文章结构部分,我们将详细介绍本文的整体结构,让读者对接下来的内容有一个清晰的认知。
1.3 目的在目的部分,我们将阐述本文的目标是为读者提供全面了解Java 枚举类型(enum)及其在switch语句中应用的知识,以帮助读者在实际开发中更好地运用这些概念。
2. 正文在这一节中,我们将介绍如何定义和声明枚举类型,以及枚举类型的特点和用法。
2.2 枚举类型的属性和方法这一节将介绍枚举类型可以拥有属性和方法,以及如何使用这些属性和方法来对枚举类型进行操作和使用。
java枚举类的定义
java枚举类的定义Java枚举类是一种特殊类型的类,用于表示一组具有固定数量的常量。
枚举常量是预定义的,并且在枚举类定义中被声明为公共、静态和最终。
枚举类可以包含构造函数、方法和字段,就像普通的Java类一样。
枚举类的实例是不可变的,因此它们可以安全地被共享和重用。
Java枚举类的定义是通过使用关键字“enum”来完成的,如下所示:```public enum MyEnum {VALUE1,VALUE2,VALUE3;}```在上面的示例中,我们定义了一个名为“MyEnum”的枚举类,它包含名为“VALUE1”、“VALUE2”和“VALUE3”的三个常量。
这些常量都是MyEnum类的实例,并且它们是不可变的。
可以通过使用“MyEnum.VALUE1”、“MyEnum.VALUE2”和“MyEnum.VALUE3”来访问这些常量。
枚举类还可以包含方法和字段,就像普通的Java类一样。
例如,我们可以向MyEnum类添加一个名为“getValue”的方法,如下所示:```public enum MyEnum {VALUE1('Value One'),VALUE2('Value Two'),VALUE3('Value Three');private final String value;private MyEnum(String value) {this.value = value;}public String getValue() {return value;}}```在上面的示例中,我们向MyEnum类添加了一个名为“value”的私有字段,并且为枚举常量提供了一个名为“value”的构造函数,以便设置该字段的值。
我们还添加了一个名为“getValue”的公共方法,以允许访问该字段的值。
现在,我们可以通过调用“MyEnum.VALUE1.getValue()”、“MyEnum.VALUE2.getValue()”和“MyEnum.VALUE3.getValue()”来获取每个枚举常量的值。
Java枚举(enum)详解
Java枚举(enum)详解Java 枚举知识点概念enum的全称为 enumeration,是 JDK 1.5 中引⼊的新特性。
在Java中,被enum关键字修饰的类型就是枚举类型。
形式如下:enum Color { RED, GREEN, BLUE }如果枚举不添加任何⽅法,枚举值默认为从0开始的有序数值。
以 Color 枚举类型举例,它的枚举常量依次为RED:0,GREEN:1,BLUE:2。
枚举的好处:可以将常量组织起来,统⼀进⾏管理。
枚举的典型应⽤场景:错误码、状态机等。
枚举类型的本质尽管enum看起来像是⼀种新的数据类型,事实上,enum是⼀种受限制的类,并且具有⾃⼰的⽅法。
创建enum时,编译器会为你⽣成⼀个相关的类,这个类继承⾃ng.Enum。
ng.Enum类声明public abstract class Enum<E extends Enum<E>>implements Comparable<E>, Serializable { ... }枚举的⽅法在enum中,提供了⼀些基本⽅法:values():返回 enum 实例的数组,⽽且该数组中的元素严格保持在 enum 中声明时的顺序。
name():返回实例名。
ordinal():返回实例声明时的次序,从0开始。
getDeclaringClass():返回实例所属的 enum 类型。
equals():判断是否为同⼀个对象。
可以使⽤==来⽐较enum实例。
此外,ng.Enum实现了Comparable和Serializable接⼝,所以也提供compareTo()⽅法。
例:展⽰enum的基本⽅法public class EnumMethodDemo {enum Color {RED, GREEN, BLUE;}enum Size {BIG, MIDDLE, SMALL;}public static void main(String args[]) {System.out.println("=========== Print all Color ===========");for (Color c : Color.values()) {System.out.println(c + " ordinal: " + c.ordinal());}System.out.println("=========== Print all Size ===========");for (Size s : Size.values()) {System.out.println(s + " ordinal: " + s.ordinal());}Color green = Color.GREEN;System.out.println(<span class="hljs-string">"green name(): "</span> + ());System.out.println(<span class="hljs-string">"green getDeclaringClass(): "</span> + green.getDeclaringClass());System.out.println(<span class="hljs-string">"green hashCode(): "</span> + green.hashCode());System.out.println(<span class="hljs-string">"green compareTo Color.GREEN: "</span> + pareTo(Color.GREEN));System.out.println(<span class="hljs-string">"green equals Color.GREEN: "</span> + green.equals(Color.GREEN));System.out.println(<span class="hljs-string">"green equals Size.MIDDLE: "</span> + green.equals(Size.MIDDLE));System.out.println(<span class="hljs-string">"green equals 1: "</span> + green.equals(<span class="hljs-number">1</span>));System.out.format(<span class="hljs-string">"green == Color.BLUE: %b\n"</span>, green == Color.BLUE);}输出=========== Print all Color ===========RED ordinal: 0GREEN ordinal: 1BLUE ordinal: 2=========== Print all Size ===========BIG ordinal: 0MIDDLE ordinal: 1SMALL ordinal: 2green name(): GREENgreen getDeclaringClass(): class org.zp.javase.enumeration.EnumDemo$Colorgreen hashCode(): 460141958green compareTo Color.GREEN: 0green equals Color.GREEN: truegreen equals Size.MIDDLE: falsegreen equals 1: falsegreen == Color.BLUE: false枚举的特性枚举的特性,归结起来就是⼀句话:除了不能继承,基本上可以将enum看做⼀个常规的类。
enum的作用和使用场景
enum的作用和使用场景一、什么是enum在编程中,enum(枚举)是一种特殊的数据类型,用于定义一组有限的命名常量。
enum可以为一组相关的常量提供一个集合,并且可以为每个常量指定一个名称。
在Java、C#、C++等编程语言中,enum是一种常见的数据类型。
二、enum的作用1. 常量集合定义enum最常见的作用就是定义一组相关的常量集合。
通过使用enum,可以将相关的常量按照一定的规则进行组织,从而提高代码的可读性和可维护性。
例如,定义一个星期几的枚举类型:enum Weekday {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY}通过定义Weekday枚举类型,可以将星期几的取值限定在指定范围内,避免出现非法取值。
2. 代码逻辑判断enum还可以用于代码逻辑判断。
例如,可以使用enum来表示订单的状态:enum OrderStatus {UNPAID, PAID, SHIPPED, COMPLETED, CANCELED}在订单处理的过程中,可以根据订单的状态来执行不同的逻辑操作。
通过使用enum,可以避免使用数字或字符串等不直观的表示方式,提高代码的可读性。
3. 数据转换在某些场景下,需要将一组有限的常量值进行转换。
enum可以方便地实现常量值之间的转换。
例如,定义一个颜色的枚举类型:enum Color {RED, GREEN, BLUE}可以通过enum的name()方法获取枚举常量的名称,也可以通过valueOf()方法将名称转换为枚举常量。
例如:String colorName = (); // 获取枚举常量的名称Color color = Color.valueOf("GREEN"); // 将名称转换为枚举常量4. switch语句在一些编程语言中,enum可以与switch语句结合使用,以实现更清晰和简洁的代码逻辑。
java枚举enum用法和写法
文章标题:探究Java枚举Enum的用法与写法1. 引言作为一种非常常见的编程语言,Java在日常开发中经常会用到枚举(Enum)这一特性。
枚举类型是一种特殊的数据类型,用于定义固定的常量集合。
在本文中,我们将探讨Java枚举的用法与写法,并结合具体的示例进行深入探讨。
2. Java枚举的基本概念在Java中,枚举类型是一种特殊的类,它可以包含常量、方法和构造函数。
枚举类型通过关键字“enum”来定义,可以为枚举类型的每个常量指定一个值,常量之间用逗号分隔。
枚举类型的定义通常放在单独的文件中,以便于维护和管理。
3. Java枚举的语法和写法在Java中,定义枚举类型可以通过以下方式进行:```javapublic enum Season {SPRING, SUMMER, AUTUMN, WINTER}```上述代码定义了一个名为Season的枚举类型,其中包含了四个常量:SPRING、SUMMER、AUTUMN和WINTER。
在使用枚举类型时,可以通过Season.SPRING来引用其中的常量。
4. Java枚举的高级用法除了定义常量外,枚举类型还可以包含方法和构造函数。
我们可以为枚举类型添加属性和行为,使其更加灵活和强大。
例如:```javapublic enum Season {SPRING("春天"), SUMMER("夏天"), AUTUMN("秋天"), WINTER("冬天");private String desc;Season(String desc) {this.desc = desc;}public String getDesc() {return desc;}}```在上述示例中,我们为枚举类型Season添加了描述属性desc,并通过构造函数和getDesc方法来实现对描述的设置和获取。
5. 示例分析:枚举在实际开发中的应用为了更好地理解枚举类型的使用,我们可以以一个示例来说明。
java 枚举的语法
java 枚举的语法摘要:1.引言2.Java枚举的定义3.Java枚举的语法规则4.Java枚举的常见用法5.Java枚举的优势和局限性6.总结正文:1.引言Java枚举(Enum)是一种特殊的类,用于表示一组固定的常量。
在Java 编程中,枚举常用于表示颜色、星期、方向等有限且固定的值。
本文将详细介绍Java枚举的语法规则及其常见用法。
2.Java枚举的定义Java枚举使用关键字`enum`来定义。
例如,定义一个表示方向的枚举:```javaenum Direction {UP, DOWN, LEFT, RIGHT}```3.Java枚举的语法规则- 枚举成员以常量(constant)的形式存在,且必须是大写字母。
- 枚举成员之间用逗号分隔。
- 枚举类中可以包含普通方法(method)和静态方法(static method)。
4.Java枚举的常见用法- 定义枚举类型:使用`enum`关键字定义一个枚举类型。
- 枚举成员:在枚举类型中定义一组固定的常量,用逗号分隔。
- 使用枚举:通过枚举类型名和成员名来使用枚举值。
示例:```java// 定义一个表示方向的枚举enum Direction {UP, DOWN, LEFT, RIGHT}public class EnumExample {public static void main(String[] args) {// 使用枚举Direction direction = Direction.UP;System.out.println("当前方向:" + direction);}}```5.Java枚举的优势和局限性优势:- 枚举值具有唯一性,避免了使用整数或字符串表示固定值时可能出现的错误。
- 枚举值可以被编译器检查,提高了代码的可读性和可维护性。
局限性:- 枚举值有限且固定,不适用于需要动态增加或删除值的场景。
6.总结Java枚举是一种用于表示固定值的特殊类,具有唯一性和可读性。
java枚举类定义
java枚举类定义Java枚举类是一种特殊的类,它定义了一组常量。
在Java中,枚举类被广泛用于表示一组固定的值,比如表示一周的七天、表示颜色的红、绿、蓝等。
本文将介绍Java枚举类的定义、使用以及相关的注意事项。
一、枚举类的定义在Java中,我们可以使用关键字enum来定义一个枚举类。
枚举类的定义通常包含了一组常量,这些常量在整个程序中是唯一的、不可变的。
以下是一个简单的枚举类的定义示例:```public enum Weekday {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;}```在上述代码中,我们定义了一个名为Weekday的枚举类,它包含了一周的七天。
二、枚举类的使用使用枚举类的常量非常简单,我们可以直接使用枚举类名加上常量名来引用一个枚举常量。
例如,要输出星期一的常量,可以使用以下代码:```System.out.println(Weekday.MONDAY);```三、枚举类的属性和方法除了常量外,枚举类还可以包含属性和方法。
我们可以在枚举类的定义中为每个常量添加属性,并在枚举类的方法中使用这些属性。
以下是一个带有属性和方法的枚举类的示例:```public enum Weekday {MONDAY("星期一", 1), TUESDAY("星期二", 2), WEDNESDAY("星期三", 3), THURSDAY("星期四", 4), FRIDAY("星期五", 5), SATURDAY("星期六", 6), SUNDAY("星期日", 7);private String chineseName;private int order;Weekday(String chineseName, int order) {this.chineseName = chineseName;this.order = order;}public String getChineseName() {return chineseName;}public int getOrder() {return order;}}```在上述代码中,我们为每个枚举常量添加了一个中文名和一个排序号。
java枚举 class参数
java枚举class参数摘要:一、前言二、Java 枚举简介1.枚举的定义2.枚举的用途三、枚举类与class 参数1.枚举类定义2.class 参数的作用3.枚举类与class 参数的关联四、使用枚举类与class 参数的实例1.示例代码2.运行结果与解析五、总结正文:一、前言在Java 编程中,枚举(Enum)是一种特殊的类型,用于定义一组固定的常量值。
它们在实际编程中被广泛应用,例如颜色、星期、方向等。
本文将介绍Java 枚举以及与class 参数相关的内容。
二、Java 枚举简介1.枚举的定义枚举是一种特殊的类,用于表示一组固定的常量值。
在Java 中,枚举是用关键字“enum”定义的。
例如:```javapublic enum Color {RED, GREEN, BLUE;}```这里定义了一个名为Color 的枚举类,包含了红、绿、蓝三个常量。
2.枚举的用途枚举的主要用途是提供一组固定的值供程序员使用,避免手动创建大量常量。
此外,枚举还可以用于switch-case 语句、定义对象属性等场景。
三、枚举类与class 参数1.枚举类定义枚举类是一种特殊的类,用于表示一组固定的常量值。
如前面所示,枚举类的定义使用关键字“enum”。
2.class 参数的作用在Java 中,枚举类可以包含一个名为class 的参数。
这个参数代表了枚举常量的类型。
通过class 参数,我们可以在枚举类中定义属性和方法,使得枚举常量具有更丰富的语义。
例如:```javapublic enum Animal {DOG(4, "狗"),CAT(2, "猫"),TIGER(6, "老虎");private int age;private String name;Animal(int age, String name) {this.age = age; = name;}public int getAge() {return age;}public String getName() {return name;}}```这里定义了一个名为Animal 的枚举类,包含了狗、猫、老虎三个枚举常量。
enum的用法java
enum的用法java摘要:一、枚举的定义与作用1.定义2.作用二、枚举的语法与使用1.语法2.使用示例三、枚举与整数的转换1.自动转换2.手动转换四、枚举的高级特性1.枚举常量2.枚举实例正文:枚举(Enum)是Java 中一种特殊的类型,用于表示一组固定的常量。
它主要具有以下几个方面的作用:1.定义:枚举是一种用于定义常量的工具,它可以将一组整数或字符串等常量进行封装,方便程序员使用。
2.作用:枚举可以提高代码的可读性和可维护性,使程序员更容易理解和把握程序的运行状态。
同时,枚举还可以提高程序的安全性,防止程序中出现非法的整数值。
在Java 中,枚举的语法格式如下:```javapublic enum 枚举名{枚举常量1,枚举常量2,...}```使用示例:```javapublic enum Day {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY}```在Java 中,枚举与整数之间可以进行自动转换。
当程序需要将枚举值转换为整数时,Java 会自动将枚举实例的hashCode() 值转换为整数。
同样,如果程序需要将整数转换为枚举值,Java 也会自动查找与整数对应的枚举实例。
除了自动转换外,Java 还提供了手动转换的方法。
通过调用枚举类的静态方法valueOf(),程序员可以将整数转换为枚举实例,如下所示:```javaDay day = Day.valueOf(1); // 相当于Day.MONDAY```枚举还具有一些高级特性,如枚举常量和枚举实例。
枚举常量是枚举中的静态变量,它可以在不创建枚举实例的情况下直接使用。
枚举实例是枚举类的实例,它可以通过new 关键字创建。
java枚举类Enum方法简介(valueof,value,ordinal)
java枚举类Enum⽅法简介(valueof,value,ordinal)转⾃/congqingbin/article/details/7520137Enum作为Sun全新引进的⼀个关键字,看起来很象是特殊的class, 它也可以有⾃⼰的变量,可以定义⾃⼰的⽅法,可以实现⼀个或者多个接⼝。
当我们在声明⼀个enum类型时,我们应该注意到enum类型有如下的⼀些特征。
1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建⼀个enum的实例。
2.所有枚举值都是public , static , final的。
注意这⼀点只是针对于枚举值,我们可以和在普通类⾥⾯定义变量⼀样定义其它任何类型的⾮枚举变量,这些变量可以⽤任何你想⽤的修饰符。
3.Enum默认实现了parable接⼝。
4.Enum覆载了了toString⽅法,因此我们如果调⽤Color.Blue.toString()默认返回字符串”Blue”. 5.Enum提供了⼀个valueOf⽅法,这个⽅法和toString⽅法是相对应的。
调⽤valueOf(“Blue”)将返回Color.Blue.因此我们在⾃⼰重写toString⽅法的时候就要注意到这⼀点,⼀把来说应该相对应地重写valueOf⽅法。
6.Enum还提供了values⽅法,这个⽅法使你能够⽅便的遍历所有的枚举值。
7.Enum还有⼀个oridinal的⽅法,这个⽅法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序⽽定,这⾥Color.Red.ordinal()返回0。
了解了这些基本特性,我们来看看如何使⽤它们。
1.遍历所有有枚举值. 知道了有values⽅法,我们可以轻车熟路地⽤ForEach循环来遍历了枚举值了。
for (Color c: Color.values()) System.out.println(“find value:” + c); 2.在enum中定义⽅法和变量,⽐如我们可以为Color增加⼀个⽅法随机返回⼀个颜⾊。
enum在java中的用法
enum在java中的用法enum是Java中的一种特殊数据类型,它用于定义一组有限的常量,这些常量都是枚举类型的实例。
与普通变量不同,枚举类型的值是固定且特定的,因此在程序设计中,enum有着非常重要的作用。
在本文中,我们将对enum在Java中的用法进行详细介绍。
一、定义枚举类型定义枚举类型的语法如下:```javaenum typeName {value1,value2,...}```其中,typeName是枚举类型的名称,value1、value2等是枚举类型的常量。
例如:```javaenum Fruit {APPLE,BANANA,ORANGE,PEAR}```上面的代码定义了一个名为“Fruit”的枚举类型,其中包含四个常量:APPLE、BANANA、ORANGE和PEAR。
这些常量的名称都是大写字母,习惯上用下划线分隔单词。
二、使用枚举类型定义了枚举类型之后,我们就可以在程序中使用它了。
例如:```javapublic class EnumDemo {public static void main(String[] args) {Fruit myFruit = Fruit.APPLE;System.out.println("My favorite fruit is " + myFruit);}}```上面的代码中,我们定义了一个名为“myFruit”的变量,类型为枚举类型“Fruit”的一个常量APPLE。
然后,我们将它打印出来,得到了以下输出:```My favorite fruit is APPLE```三、枚举常量的方法和属性在Java中,枚举类型的常量可以拥有自己的属性和方法。
例如,我们可以像下面这样为枚举类型定义一个属性:```javaenum Fruit {APPLE(50), //表示苹果的价格是50元BANANA(10), //表示香蕉的价格是10元ORANGE(30), //表示橙子的价格是30元PEAR(20); //表示梨子的价格是20元private int price;private Fruit(int price) {this.price = price;}public int getPrice() {return price;}}```上面的代码中,我们为每个枚举类型定义了一个价格。
详解Java枚举类型enum及其使用
详解Java枚举类型enum及其使用详解Java枚举类型enum及其使用Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型。
以下是店铺搜索整理的关于Java枚举类型enum详解及其使用,,需要的朋友可以参考本文!想了解更多相关信息请持续关注我们店铺!要了解枚举类型,建议大家先打开jdk 中的Enum 类简单读一下,这个类里面定义了很多protected 方法,比如构造函数,如果要使用这些方法我们可以把枚举类型定义到当前类中。
每个枚举类型,都有自己的名字和顺序,当我们输出一个枚举类型的时候,会输入枚举类型的name ,具体可以参考下面的例子。
一、通常定义常量方法我们通常利用public final static 方法定义的代码如下,分别用1 表示红灯,3 表示绿灯,2 表示黄灯。
package com.csdn.myEnum;public class Light {/* 红灯 */public final static int RED =1;/* 绿灯 */public final static int GREEN =3;/* 黄灯 */public final static int YELLOW =2;}二、枚举类型定义常量方法枚举类型的简单定义方法如下,我们似乎没办法定义每个枚举类型的值。
比如我们定义红灯、绿灯和黄灯的代码可能如下:public enum Light {RED , GREEN , YELLOW ;}我们只能够表示出红灯、绿灯和黄灯,但是具体的值我们没办法表示出来。
别急,既然枚举类型提供了构造函数,我们可以通过构造函数和覆写toString 方法来实现。
首先给Light 枚举类型增加构造方法,然后每个枚举类型的值通过构造函数传入对应的参数,同时覆写toString 方法,在该方法中返回从构造函数中传入的参数,改造后的'代码如下:public enum Light {// 利用构造函数传参RED (1), GREEN (3), YELLOW (2);// 定义私有变量private int nCode ;// 构造函数,枚举类型只能为私有private Light( int _nCode) {this . nCode = _nCode;}@Overridepublic String toString() {return String.valueOf ( this . nCode );}}三、完整示例代码枚举类型的完整演示代码如下:package com.csdn.myEnum;import java.util.EnumMap;import java.util.EnumSet;public class LightT est {// 1. 定义枚举类型public enum Light {// 利用构造函数传参RED (1), GREEN (3), YELLOW (2);// 定义私有变量private int nCode ;// 构造函数,枚举类型只能为私有private Light( int _nCode) {this . nCode = _nCode;}@Overridepublic String toString() {return String.valueOf ( this . nCode );}}/*** @param args*/public static void main(String[] args ) {// 1. 遍历枚举类型System. out .println( " 演示枚举类型的遍历 ......" ); testTraversalEnum ();// 2. 演示 EnumMap 对象的使用System. out .println( " 演示 EnmuMap 对象的使用和遍历 ....." ); testEnumMap ();// 3. 演示 EnmuSet 的使用System. out .println( " 演示 EnmuSet 对象的使用和遍历 ....." ); testEnumSet ();}/*** 演示枚举类型的遍历*/private static void testTraversalEnum() {Light[] allLight = Light.values ();for (Light aLight : allLight) {System. out .println( " 当前灯 name : " + ());System. out .println( " 当前灯 ordinal : " + aLight.ordinal());System. out .println( " 当前灯: " + aLight);}}/*** 演示 EnumMap 的使用, EnumMap 跟 HashMap 的使用差不多,只不过 key 要是枚举类型*/private static void testEnumMap() {// 1. 演示定义 EnumMap 对象, EnumMap 对象的构造函数需要参数传入 , 默认是key 的类的类型EnumMap currEnumMap = new EnumMap(Light. class );currEnumMap.put(Light. RED , " 红灯 " );currEnumMap.put(Light. GREEN , " 绿灯 " );currEnumMap.put(Light. YELLOW , " 黄灯 " );// 2. 遍历对象for (Light aLight : Light.values ()) {System. out .println( "[key=" + () + ",value="+ currEnumMap.get(aLight) + "]" );}}/*** 演示 EnumSet 如何使用, EnumSet 是一个抽象类,获取一个类型的枚举类型内容* 可以使用 allOf 方法*/private static void testEnumSet() {EnumSet currEnumSet = EnumSet.allOf (Light. class );for (Light aLightSetElement : currEnumSet) {System. out .println( " 当前EnumSet 中数据为:" + aLightSetElement);}}}执行结果如下:演示枚举类型的遍历 ......当前灯 name : RED当前灯 ordinal : 0当前灯: 1当前灯 name : GREEN当前灯 ordinal : 1当前灯: 3当前灯 name : YELLOW当前灯 ordinal : 2当前灯: 2演示 EnmuMap 对象的使用和遍历 .....[key=RED,value= 红灯 ][key=GREEN,value= 绿灯 ][key=YELLOW,value= 黄灯 ]演示 EnmuSet 对象的使用和遍历 .....当前 EnumSet 中数据为: 1当前 EnumSet 中数据为: 3当前 EnumSet 中数据为: 2四、通常定义常量方法和枚举定义常量方法区别以下内容可能有些无聊,但绝对值得一窥1. 代码:public class State {public static final int ON = 1;public static final Int OFF= 0;}有什么不好了,大家都这样用了很长时间了,没什么问题啊。
enum的用法
enum的用法enum,也就是枚举,是一种在编程语言中的一种数据类型,可以帮助我们给数值或变量赋予易于理解的名称,从而更加方便的调用和维护,同时也可以减少编程的复杂度和错误。
在Java中,enum是一种特殊的类,可以定义一组相关常数,用于表示有限的可能值。
一般情况下,在任何给定的字段,一个枚举常量只能被赋值一次。
枚举常量可以帮助我们明确代码中的可能性,从而避免错误。
枚举类型就像定义一个类,但是我们可以把它想象成一个只有常量值的类,这些可以用来表示所有可能的可选项,每个可选项都有一个对应的int值,这样的话可以更加容易的进行数据传递和存储。
枚举的定义方式也不同于普通的类,其定义必须符合如下基本语法:enum举名 {枚举值1,举值2,…枚举值n}枚举常量的ehclaorsation可以使用静态变量,如果枚举常量的值为int,则可以使用static final int来声明。
由于枚举常量之间存在一定的关系,因此Java在枚举常量被声明之后,会自动为其创建一些相关的方法,例如values()、valueOf()等,这些方法可以帮助我们更加清晰的理解枚举的用法。
首先,values()方法是一个静态的工厂方法,它会返回一个枚举类型包含所有枚举常量的数组,这对于枚举类型有着非常重要的意义,例如我们可以使用如下代码来遍历所有枚举类型中的常量:for(枚举类型 enumType :举类型.values()) {System.out.println(() += +enumType.getValue());}其次,从Java 5开始,还为enum添加了抽象方法支持,我们可以向enum中添加抽象方法,然后在每个枚举常量中对该抽象方法进行实现,这样可以帮助我们更加清晰的定义枚举常量的行为,例如: public enum PaymentType{CASH {public void doPayment(){System.out.println(“Cash Payment is done”);}},CARD {public void doPayment(){System.out.println(“Card Payment is done”);}};public abstract void doPayment();}最后,Java中的枚举类型也拥有自己的对象之间的比较方法,可以使用compareTo()方法来比较两个枚举常量,例如:int compareResult = pareTo(otherEnum);如果compareResult大于0,则表示myEnum大于otherEnum;如果compareResult小于0,则表示myEnum小于otherEnum;如果compareResult等于0,则表示myEnum等于otherEnum。
java enum高级用法
java enum高级用法
Java中的枚举是一种特殊的类,它只能创建固定数量的实例。
枚举的常规用法是代表有限的一组值,例如月份、星期、性别等等。
但是,枚举还有许多高级用法,可以让你的代码更加优雅和易于维护。
1. 枚举的构造函数和方法
枚举可以有构造函数和方法,就像普通的类一样。
定义枚举时,可以为每个实例指定不同的构造参数,并为枚举类型定义方法。
例如,可以定义一个枚举来代表不同的图形类型,并为每个图形类型定义一个计算面积的方法。
2. 定义枚举常量的属性
枚举常量也可以有自己的属性,这些属性可以在枚举类中定义。
例如,可以定义一个枚举来代表不同的颜色,并为每个颜色定义一个属性来表示它的RGB值。
这样,可以在代码中轻松地引用这些颜色,而不需要记住每个颜色的RGB值。
3. 枚举的组合
枚举可以组合使用,这样可以创建更复杂的类型。
例如,可以定义一个枚举来代表不同类型的汽车,并使用组合来定义每辆汽车的品牌、型号、颜色和价格。
4. 枚举的序列化和反序列化
枚举可以被序列化和反序列化,这使得它们可以被存储在文件系统或数据库中。
这样,就可以在程序重新启动时恢复先前的状态。
总之,Java枚举是非常有用的工具,它可以让你的代码更加清
晰和易于维护。
如果你想更深入地了解使用Java枚举的高级技巧,可以查阅Java官方文档或参考其他相关资料。
java 枚举高级用法
java 枚举高级用法Java 枚举(Enum)是一种特殊的类,用于表示固定数量的常量。
枚举在 Java 5 之后引入,提供了更安全、更高效的方式来表示一组固定的常量值。
这里有一些关于 Java 枚举的高级用法:1、枚举常量命名:Java 枚举常量的命名一般使用大写字母,多个单词之间使用下划线分隔。
例如:MONTH_OF_YEAR。
2、枚举常量值:每个枚举类型都有一个默认的枚举常量,你可以在枚举类型中定义更多的常量。
例如:1.java复制代码public enum Day {SUNDAY, MONDAY, TUESDAY,WEDNESDAY,THURSDAY, FRIDAY, SATURDAY}1.3、枚举常量之间的比较:可以直接使用== 来比较两个枚举常量。
例如:java复制代码if (day1 ==day2) {// do something}4、枚举常量的迭代:可以使用for-each 循环来迭代枚举常量。
例如:java复制代码for(Day day : Day.values()){System.out.println(day);}1.5、枚举常量的构造函数:你可以为枚举类型定义构造函数,就像普通类一样。
例如:java复制代码public enum Day {SUNDAY("Sunday"), MONDAY("Monday"),TUESDAY("Tuesday"), WEDNESDAY("Wednesday"),THURSDAY("Thursday"), FRIDAY("Friday"),SATURDAY("Saturday");private final String dayName;Day(String dayName) {this.dayName = dayName;}}6、枚举常量的方法和字段:你可以在枚举类型中定义方法和字段。
enum枚举类型的用法java
enum枚举类型的用法java 在Java中,enum(枚举)类型是一种特殊的数据类型,用于表示一组常量。
enum 可以帮助你编写更清晰、更具可读性的代码,特别是在涉及一组相关的常量时。
以下是一些关于在Java中使用enum 的基本用法:定义一个简单的enum:public enum Day {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY}这里定义了一个表示星期的枚举类型,其中包含了每一天的常量。
使用enum常量:Day today = Day.MONDAY;在这个例子中,today 是一个Day 类型的变量,它被赋值为Day.MONDAY。
switch语句与enum结合使用:switch (today) {case MONDAY:System.out.println("It's Monday!");break;case TUESDAY:System.out.println("It's Tuesday!");break;// ... 其他天default:System.out.println("It's not a weekday.");break;}使用enum的一个常见场景是在switch语句中使用,这样代码更清晰、易读。
enum可以包含字段和方法:public enum TrafficLight {RED("Stop"), GREEN("Go"), YELLOW("Caution");private String action;private TrafficLight(String action) {this.action = action;}public String getAction() {return action;}}在这个例子中,TrafficLight 枚举类型包含了一个字段 action 和一个方法 getAction()。
java enum类方法
java enum类方法Java中的enum类是一种特殊类型的类,它是一组有限的命名常量集合,被称为枚举类型。
在Java中,枚举类型也被称为枚举。
枚举类在Java中是一种非常有用的类型,主要用于定义某个类具有的常量类型。
在Java中,枚举类型的定义和使用非常容易,它们提供了很多有用的方法来操作枚举类型对象和常量。
本文将介绍Java中的enum类以及其常用的方法。
1. 枚举类型的定义在Java中,可以使用enum关键字来定义枚举类型。
枚举类型定义的语法如下:enum enum_name {// 常量列表}其中,enum_name代表枚举类型的名称,常量列表是一组有限的命名常量集合。
例如,下面是一个定义星期枚举类型的例子:enum Day {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;}在这个例子中,定义了一个Day枚举类型,它包括了7个常量,分别表示星期日、星期一、星期二、星期三、星期四、星期五和星期六。
在Java中,枚举类型提供了很多有用的方法来操作枚举类型对象和常量。
下面是枚举类型的常用方法:2.1 values()方法values()方法用于获取枚举类型中所有的常量。
该方法返回一个包含所有常量的数组。
Day[] days = Day.values();valueOf()方法用于根据指定的名称获取枚举类型的常量。
该方法接收一个字符串参数,该参数为枚举类型的常量名称。
该方法会根据名称返回对应的枚举类型常量。
例如,可以使用Day枚举类型的valueOf()方法获取星期三的常量:2.3 compareTo()方法compareTo()方法用于比较两个枚举类型常量的顺序。
该方法接收另一个枚举类型常量作为参数,并返回一个整数值。
例如,可以使用Day枚举类型的compareTo()方法比较星期一和星期二Constants的顺序:int compareResult = pareTo(Day.TUESDAY);compareResult的值为-1,表示星期一在星期二之前。
Java语言中Enum类型的使用介绍
Java语⾔中Enum类型的使⽤介绍Enum 类型的介绍枚举类型(Enumerated Type)很早就出现在编程语⾔中,它被⽤来将⼀组类似的值包含到⼀种类型当中。
⽽这种枚举类型的名称则会被定义成独⼀⽆⼆的类型描述符,在这⼀点上和常量的定义相似。
不过相⽐较常量类型,枚举类型可以为申明的变量提供更⼤的取值范围。
举个例⼦来说明⼀下,如果希望为彩虹描绘出七种颜⾊,你可以在 Java 程序中通过常量定义⽅式来实现。
清单 1. 常量定义Public static class RainbowColor {// 红橙黄绿青蓝紫七种颜⾊的常量定义public static final int RED = 0;public static final int ORANGE = 1;public static final int YELLOW = 2;public static final int GREEN = 3;public static final int CYAN = 4;public static final int BLUE = 5;public static final int PURPLE = 6;}使⽤的时候,你可以在程序中直接引⽤这些常量。
但是,这种⽅式还是存在着⼀些问题。
1. 类型不安全由于颜⾊常量的对应值是整数形,所以程序执⾏过程中很有可能给颜⾊变量传⼊⼀个任意的整数值,导致出现错误。
2. 没有命名空间由于颜⾊常量只是类的属性,当你使⽤的时候不得不通过类来访问。
3. ⼀致性差因为整形枚举属于编译期常量,所以编译过程完成后,所有客户端和服务器端引⽤的地⽅,会直接将整数值写⼊。
这样,当你修改旧的枚举整数值后或者增加新的枚举值后,所有引⽤地⽅代码都需要重新编译,否则运⾏时刻就会出现错误。
4. 类型⽆指意性由于颜⾊枚举值仅仅是⼀些⽆任何含义的整数值,如果在运⾏期调试时候,你就会发现⽇志中有很多魔术数字,但除了程序员本⾝,其他⼈很难明⽩其奥秘。
java枚举类型enum用法和写法
java枚举类型enum用法和写法Java枚举类型enum是一种特殊的类,用于定义一些固定的值。
它可以作为参数或返回值类型,以确保变量只能是该枚举类型中的一个值。
以下是Java枚举类型enum的使用方法和写法:1. 声明一个枚举类型枚举类型的语法格式如下:enum EnumName {VALUE1,VALUE2,…}其中,`EnumName`是枚举类型的名称,`VALUE1`、`VALUE2`等是该枚举类型中定义的枚举常量。
2. 使用枚举类型在Java中使用枚举类型非常简单。
可以像任何其他类型一样声明枚举类型的变量,并将其初始化为枚举常量。
例如:enum Color {RED, GREEN, BLUE}Color c = Color.RED;3. 枚举类型的方法可以在枚举类型中定义方法,以便可以在枚举常量之间执行自定义操作。
方法的定义与其他Java类的方法定义相同。
例如:enum Size {SMALL, MEDIUM, LARGE;public boolean isLargerThan(Size otherSize) {return this.ordinal() > otherSize.ordinal();}}Size s1 = Size.SMALL;Size s2 = RGE;boolean result = s2.isLargerThan(s1); true4. 枚举类型的常用方法Java中的枚举类型有一些常用方法,如下所示:- `values()`方法:返回该枚举类型中的所有枚举常量的数组。
- `valueOf(String name)`方法:返回指定名称的枚举常量。
例如:enum Level {LOW, MEDIUM, HIGH}Level[] allLevels = Level.values();Level highLevel = Level.valueOf("HIGH");以上就是Java枚举类型enum的使用方法和写法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Enum类Enum枚举类就是class,而且是一个不可以被继承的final类。
(后面均用Color举例)。
其枚举值(RED,BLUE...)都是Color类型的类静态常量,我们可以通过下面的方式来得到Color枚举类的一个实例:Color c=Color.RED;注意:这些枚举值都是public static final的,也就是我们经常所定义的常量方式,因此枚举类中的枚举值最好全部大写。
1、即然枚举类是class,当然在枚举类型中有构造器,方法和数据域。
但是,枚举类的构造器有很大的不同,不能使用public的构造函数,只能使用private的构造函数,这样可以保证外部代码无法新构造枚举类的实例。
2.所有枚举值都是public , static , final的。
注意这一点只是针对于枚举值,我们可以和在普通类里面定义变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。
3.Enum默认实现了parable接口。
4.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”.5.Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。
调用valueOf(“Blue”)将返回Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。
6.Enum还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。
7.Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.RED.ordinal(); //返回结果:0Color.BLUE.ordinal(); //返回结果:18.equals()方法:比较两个枚举类对象的引用。
public final boolean equals(Object other) {return this==other;}pareTo()方法: Enum实现了parable接口,因此可以比较象与指定对象的顺序。
Enum中的compareTo返回的是两个枚举值的顺序之差。
当然,前提是两个枚举值必须属于同一个枚举类,否则会抛出ClassCastException()异常。
pareTo(Color.BLUE); //返回结果-110.枚举类可以在switch语句中使用。
Color color=Color.RED;switch(color){case RED: System.out.println("it's red");break;case BLUE: System.out.println("it's blue");break;case BLACK: System.out.println("it's blue");break;}枚举类的定义:例1:public class TestEnum {//只能是三种颜色之一public enum Mycolor{red,blue,green};//开我们家门只能是我和我的家人public enum Mydor{me,myfamily};public static void main(String[] agrs){Mycolor m = Mycolor.blue;Mydor d = Mydor.me;switch (m){case red:System.out.println("red") ;break;case green:System.out.println("green") ;;break;case blue:System.out.println("blue");break;default:System.out.println("default");}switch(d){case me:System.out.println("me");break;case myfamily:System.out.println("myfamily");break;}}}打印结果为:blueme例2:import java.util.EnumMap;import java.util.EnumSet;/** enum的应用,包括定义,遍历,switch,enumset,enummap* Java枚举类型enum使用详解* MyEnum可以存放多个枚举类型*/public class MyEnum {// 定义一个enum枚举类型,包括实例ON,OFFpublic enum State {ON, OFF}public enum Country {China, Japan}// 测试方法public static void main(String[] args) {System.out.println("******遍历枚举的值********");// 遍历State枚举的值for (State i : State.values()) {System.out.print(()+" ");}System.out.println();// 遍历Country枚举的值for (Country j : Country.values()) {System.out.print(()+" ");}System.out.println();System.out.println("******switch与enum的结合使用********");// switch与enum的结合使用State s= State.OFF;switch (s) {case OFF:System.out.println("OFF");break;case ON:System.out.println("ON");break;}System.out.println("******EnumSet的用法********");/** 创建一个EnumSet ,并把State转换成EnumSet类型*/EnumSet<State> stateSet = EnumSet.allOf(State.class);//遍历Enumsetfor (State s1 : stateSet) {System.out.println(s1);}System.out.println("******EnumMap的用法********");/** 创建一个EnumMap ,并把State转换成EnumMap类型* 并为EnumMap添加内容。
*/EnumMap stateMap = new EnumMap(State.class);stateMap.put(State.ON, "is on");stateMap.put(State.OFF, "is off");//遍历EnumMapfor (State s2 : State.values()) {System.out.println(() + ":" + stateMap.get(s2));}System.out.println("==枚举可以这样被调用==");// 枚举可以这样被调用State state1 = MyEnum.State.OFF;System.out.println(());System.out.println("***把枚举State放进一个数组 ****");//把枚举State放进一个数组State[] state2 = MyEnum.State.values();for (State state : state2) {System.out.print(()+" ");}}}打印结果为:******遍历枚举的值 ********ON OFFChina Japan******switch与enum的结合使用 ********OFF******EnumSet的用法********ONOFF******EnumMap的用法********ON:is onOFF:is off==枚举可以这样被调用==OFF***把枚举State放进一个数组 ****ON OFF枚举类型也可以直接以类的形式声明,可以跟类、接口同级别例1:在enum中定义方法和变量,比如我们可以为Color增加一个方法随机返回一个颜色。
public enum EnumColor1 {Red,Green,Blue;//定义一个变量表示枚举值的数目。
private static int number = EnumColor1.values().length ;/** 随机返回一个枚举值* @return a random enum value.*/public static EnumColor1 getRandomColor(){//获取当前时间以毫秒为单位,再出number取余。
long random = System.currentTimeMillis() % number;switch ((int) random){case 0:return EnumColor1.Red;case 1:return EnumColor1.Green;case 2:return EnumColor1.Blue;default : return EnumColor1.Red;}}public static void main(String args[]){EnumColor1 e =EnumColor1.getRandomColor();System.out.println(e);}}打印结果为:Green该值是随机分配的。
可以看出这在枚举类型里定义变量和方法和在普通类里面定义方法和变量没有什么区别。
唯一要注意的只是变量和方法定义必须放在所有枚举值定义的后面,否则编译器会给出一个错误。
例2:public enum EnumToString {Red,Green,Blue;public static void main(String[] agrs){EnumToString e = EnumToString.Blue;System.out.println(e);}public String toString(){switch (this){case Red:return"Color.Red";case Green:return"Color.Green";case Blue:return"Color.Blue";default:return"Unknow Color";}}}调用Color.Blue.toString()默认返回字符串”Blue”。