🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿
枚举类型
- 枚举类型的定义
- 枚举类型的方法
- 实战演练
- 枚举在switch中的应用
- 实战演练
- 枚举类的构造方法
- 实战演练
枚举类型的定义
[修饰符] enum 枚举类型名
{
[public static final]枚举成员; //只能写在第一行
其他成员;
[private]构造方法
方法
}
- 修饰符可以是public、private、internal
- 枚举类型名有两层含义:一是作为枚举名使用;二是表示枚举成员的数据类型。枚举成员也称为枚举实例或枚举对象。
- 枚举默认继承自java.lang.Enum类。
- 创建枚举对象不能使用new( )运算符,而应直接将枚举成员赋值给枚举对象。
枚举类型的方法
- 每个枚举类型的成员都可以看作是Enum类的实例,这些枚举成员默认被final public static修饰。
- 访问枚举类型的成员
枚举名.枚举成员
枚举名.valueOf( 参数) - 因为枚举也是一种类,所以它具有与其他类几乎相同的特性,因此可以定义枚举的属性、构造方法以及方法。
- 枚举类常用方法
方法 | 说明 |
---|---|
public static E[] values( ) | 返回枚举类型的数组,包含了枚举的所有枚举成员 |
public static E valueOf(String str) | 返回名称为str的枚举成员 |
public final int compareTo (E o) | 返回当前枚举成员与参数枚举成员o在定义时顺序的比较结果 |
Public final class getDeclaringClass() | 返回对应的枚举常量的枚举类型的类对象 |
public final String name( ) | 返回枚举常量的名字 |
public final int ordinal ( ) | 返回枚举成员在枚举中的序号(0开始) |
public String toString( ) | 返回枚举成员的名称 |
实战演练
【例】定义一个枚举类型,然后输出枚举成员的名称和对应的序号。
enum Direction
{ EAST,SOUTH,WEST,NORTH }
public class EnumDemo{
public static void main(String[] args)
{
Direction dir=Direction.EAST;
System.out.print(dir);
for(Direction d:Direction.values())
System.out.println("序号:"+d.ordinal()+" 的值为"+d.name());
}
}
枚举在switch中的应用
- 枚举类型有一个特别实用的特性,它可以在switch语句中使用。
- java.time.DayOfWeek是一个枚举类型,其中包括一周的7天,分别为MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY和SUNDAY,序号从0到6。
- EnumSwitch.java程序在switch结构中使用DayOfWeek枚举。
实战演练
【例】 java.time.DayOfWeek是一个枚举类,一周7天,序号分别是0-6
import java.time.DayOfWeek;
public class EnumSwitch {
public static void describe (DayOfWeek day) {
switch (day) {
case MONDAY:
System.out.println("Mondays are bad.");
break;
case FRIDAY:
System.out.println("Fridays are better.");
break;
case SATURDAY:
case SUNDAY:
System.out.println("Weekends are best.");
break;
default:
System.out.println("Midweek days are so-so.");
break;
}
}
public static void main(String[] args) {
DayOfWeek firstDay = DayOfWeek.MONDAY;
describe (firstDay);
DayOfWeek thirdDay = DayOfWeek.WEDNESDAY;
describe (thirdDay);
DayOfWeek seventhDay = DayOfWeek.SUNDAY;
describe(seventhDay);
}
}
运行结果:
枚举类的构造方法
- 枚举的构造方法只是在构造枚举实例值时被调用。每一个枚举实例值都是枚举的一个对象,因此创建每个枚举实例时都需要调用该构造方法。
实战演练
【例】 定义color枚举,包含四种颜色,声明两个private成员变量(name颜色名字、index索引)
package com;
public enum Color {
RED("红色", 1), GREEN("绿色", 2), WHITE("白色", 3), YELLOW("黄色", 4);
private String name;
private int index;
private Color(String name, int index) {
this.name = name;
this.index = index;
}
public static String getName(int index) {
for (Color c : Color.values()) {
if (c.getIndex() == index) {
return c.name;
}
}
return null;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
@Override
public String toString() {
return this.name + "_" + this.index;
}
public static void main (String[] args) {
Color c = Color.RED; // 自动调用构造方法
System.out.println(c.toString()); // 输出:1-红色
}
}
}
博主用心写,读者点关注,互动传真情,知识不迷路