(Java)定义一个枚举类型

Java 有两种方式定义新类型:类和接口。对于大部分面向对象编程来说,这两种方法够了,但是对于一些特殊情况比如:想定义一个 Color 类,它只能有 Red、Green、Blue 3种值,其他的任何值都是非法的,这种情况就适用枚举简单方便。

所谓的枚举就是限制一个类的对象产生范围

文章目录

一、基本概念

可以使用关键字 enum 定义枚举类型:

[public] enum 枚举类型{
	枚举对象1,枚举对象2...枚举对象 n;
}
例如:
public enum Color{//定义枚举类型
	RED,GREEN,BLUE;//定义枚举的3个类型
}

这里Color定义出来的枚举类型,包含 RED、GREEN、BLUE 3个数据,可以使用
枚举.variable 的形式取出枚举中的指定内容

enum Color{
    RED,GREEN,BLUE;//定义枚举的3个类型
}
public class Test{
    public static void main(String[] args) {
        Color c = Color.BLUE;//取出蓝色
        System.out.println(c);//输出信息
    }
}

使用 枚举.variable 的形式取出枚举中的指定内容

enum Color{
    RED,GREEN,BLUE;//定义枚举的3个类型
}
public class Test{
    public static void main(String[] args) {
        for (Color c:Color.values()){//枚举.values() 表示得到全部枚举的内容
            System.out.println(c);
        }
    }
}

使用 Color.values() 方法表示取得枚举中的全部内容,返回的是一个对象数组。

### 如何在 Java定义一个枚举类型Java 中,可以通过 `enum` 关键字来定义一个新的枚举类型。这种类型的值是固定的、有限的集合。枚举类型本质上是一种特殊的类,继承自 `java.lang.Enum`,并具备其所有的特性。 #### 基本语法 以下是定义枚举类型的通用形式: ```java public enum EnumName { CONSTANT1, CONSTANT2, CONSTANT3; } ``` 在此结构中,`CONSTANT1`, `CONSTANT2`, 和 `CONSTANT3` 是该枚举的具体常量[^2]。 #### 枚举类型的扩展功能 除了简单的常量列表外,还可以为枚举添加构造函数、字段以及方法等复杂逻辑。例如: ```java public enum Color { RED("Red"), GREEN("Green"), BLUE("Blue"); private String displayName; // 私有的构造函数用于初始化每个枚举实例 private Color(String displayName) { this.displayName = displayName; } public String getDisplayName() { return displayName; } } ``` 上述代码展示了如何创建带有参数化的构造器和成员变量的枚举类型[^4]。这里,`Color` 枚举不仅限于三个固定的颜色名称,还允许存储额外的信息(如显示名),并通过公共方法访问这些信息。 #### 使用场景 当需要表示一组预定义且不可变的对象集时,使用枚举是非常合适的解决方案之一。相比传统的字符串或整数编码方案,枚举提供了更强的安全性和可读性。 #### 实际应用案例 下面展示了一个更复杂的例子,在其中实现了接口,并重写了父类的方法: ```java public interface Behavior { void action(); } public enum Animal implements Behavior{ DOG { @Override public void action(){ System.out.println("Bark"); } }, CAT { @Override public void action(){ System.out.println("Meow"); } }; // 抽象方法强制子类实现具体行为 abstract void action(); } ``` 此示例说明了即使是在同一个枚举内部的不同条目之间也能够拥有各自独特的行为模式[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南淮北安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值