Java语言程序设计——篇九(2)

倾听一世,繁花盛开 2024-08-25 12:05:02 阅读 100

在这里插入图片描述

🌿🌿🌿跟随博主脚步,从这里开始→博主主页🌿🌿🌿

枚举类型

枚举类型的定义枚举类型的方法实战演练

枚举在switch中的应用实战演练

枚举类的构造方法实战演练

枚举类型的定义

<code> [修饰符] 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

<code>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索引)

<code>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-红色

}

}

}

博主用心写,读者点关注,互动传真情,知识不迷路



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。