枚举类·与普通类

一、🔷 一句话总结:​​枚举类是一种特殊的类​

✅ ​​Java 的枚举(enum)是一种特殊的类(class),它由 Java 语言原生支持,用来表示一组固定的常量,具有类的很多特性,但也有自己独特的限制和用途。​

你可以简单理解为:

对比项

普通类(class)

枚举类(enum)

是类吗?

✅ 是一个普通类

✅ 也是一种类(特殊的类)

能定义字段/方法吗?

✅ 可以

✅ 也可以(很灵活!)

能定义构造方法吗?

✅ 可以

✅ 可以,但有限制(后面讲)

能 new 出对象吗?

✅ 可以随意 new

❌ 不能随便 new,对象是固定的

用来干嘛的?

通用业务逻辑封装

表示一组​​固定的常量​​,比如状态、类型、策略等


二、🔍 枚举类和普通类的核心区别

特性

普通类(class)

枚举类(enum)

​定义方式​

public class MyClass { ... }

public enum MyEnum { ... }

​能否 new 实例​

可以随意使用 new MyClass()创建无数对象

❌ 不能随便 new,它的实例是有限的、预定义的

​实例数量​

可以有任意多个对象

✅ 只有在枚举中显式声明的那些对象(常量)

​用途​

用于封装一般的业务逻辑、对象模型

用于表示一组固定的常量,如状态、类型、选项、策略等

​是否可以有字段、方法、构造器​

✅ 支持全部

✅ 也支持字段、方法、构造器,但构造器不能是 public 的

​是否可以实现接口 / 继承类​

✅ 可以

✅ 也可以实现接口,但​​不能继承其他类​​(所有枚举都隐式继承自 java.lang.Enum

​设计目的​

通用对象建模

表示一组有限的、预定义的选项(常量集合)


三、🔧 从代码上直观感受:枚举 vs 普通类


1. 普通类示例 ✅



// 普通类 public class Color { private String name; public Color(String name) { this.name = name; } public String getName() { return name; } }

你可以随意创建多个对象:



Color red = new Color("红色"); Color blue = new Color("蓝色"); Color green = new Color("绿色"); // 可以有无数个 Color 对象,没有限制

普通类的对象是 ​​动态创建的、数量不限的、灵活的​


2. 枚举类示例 ✅



// 枚举类 public enum Color { RED, // 枚举常量 BLUE, // 枚举常量 GREEN // 枚举常量 }

你不能 new Color(),而是直接使用预定义的常量:



Color red = Color.RED; Color blue = Color.BLUE; Color green = Color.GREEN;

✅ 枚举的实例(RED、BLUE、GREEN)是 ​​在枚举类中预先定义好、固定不变的​

❌ 你不能随意创建新的 Color 对象,比如 new Color("黄色")是不允许的

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值