enum

本文介绍了Java中枚举类型的实现方式及如何使用EnumMap和EnumSet进行数据操作。通过具体示例展示了枚举成员的定义、方法覆盖以及枚举集合的创建与迭代过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package enumTest;

import java.util.EnumMap;

import java.util.EnumSet;

import java.util.Iterator;

import java.util.Map.Entry;

interface A1 {

void isRest();

}

enum Test2 implements A1 {

MON("一", 1), TUE("二", 2), FRI("三", 3) {
	[@Override](https://my.oschina.net/u/1162528)
	public void isRest() {
		// TODO Auto-generated method stub
		System.out.println("today is " + FRI.name + "休息");
	}
};

private String name;
private int id;

private Test2() {

}

private Test2(String name, int id) {
	this.name = name;
	this.id = id;
}

[@Override](https://my.oschina.net/u/1162528)
public void isRest() {
	// TODO Auto-generated method stub

}
/* abstract void isOpen(); */

}

public class Test1 {

public static void main(String[] args) {
	// public static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType)
	// 创建一个包含指定元素类型的所有元素的枚举 set。
	EnumSet<Test2> TestSet = EnumSet.allOf(Test2.class);
	for (Enum<Test2> enum1 : TestSet) {
		System.out.println(enum1);
		/*
		 * MON TUE FRI
		 */
	}
	EnumMap<Test2, String> Map = new EnumMap<>(Test2.class);
	Map.put(Test2.TUE, "ss");
	for (Iterator<Entry<Test2, String>> iter = Map.entrySet().iterator(); iter.hasNext();) {
		Entry<Test2, String> entry = iter.next();
		System.out.println(entry.getKey() + ":" + entry.getValue());
		
	}
}

}

转载于:https://my.oschina.net/u/2346823/blog/1538155

07-03
<think>我们正在讨论VBA中的Enum(枚举)类型。Enum用于定义一组相关的命名常量,使代码更易读和维护。在VBA中,Enum的声明语法如下:[Public |Private]Enum枚举名成员名1 [=常数值1]成员名2 [=常数值2]...EndEnum关键点:1.作用域:可以用Public或Private修饰,PublicEnum可以在整个工程中使用,PrivateEnum仅在其所在模块内有效。2.成员赋值:可以显式赋值(必须是常量表达式),也可以不赋值(默认从0开始,后续成员比前一个多1)。3.使用枚举:可以增加代码可读性,避免使用魔法数字。示例: ```vba'在标准模块中声明一个公共枚举PublicEnum DaysOfWeekSunday =1MondayTuesdayWednesdayThursdayFridaySaturdayEnd Enum'使用枚举SubPrintDay()Dim todayAs DaysOfWeektoday =TuesdayDebug.Print today'输出3(因为Tuesday是第三个,显式赋值Sunday=1,所以Monday=2,Tuesday=3)End Sub```枚举的优势:-提高代码可读性:使用有意义的名称代替数字。 -类型安全:声明为枚举类型的变量只能赋予该枚举的成员值。 -便于维护:修改枚举值只需在定义处调整。注意事项: -枚举的底层类型是Long,不能是其他类型。 -枚举成员的值在运行时不可修改。 §§相关问题§§1.如何在VBA中遍历枚举的所有成员?2.Public Enum和PrivateEnum的作用域范围具体有哪些不同? 3.枚举成员的值是否允许重复?如果允许会有什么影响? 4.在VBA中,如何将整数转换为枚举类型?</think>在 VBA 中,`Enum`(枚举)是一种**用户自定义数据类型**,用于定义一组相关的命名常量,使代码更清晰易读。核心特性和用法如下: ### 核心特性 1. **命名常量集合** - 将数字常量转换为有意义的名称 - 替代魔法数字(Magic Numbers),提升可读性 ```vba Enum FileAccessMode ReadOnly = 1 WriteOnly = 2 ReadWrite = 3 End Enum ``` 2. **自动赋值机制** - 未显式赋值时,首成员默认为 0,后续递增 1 ```vba Enum Colors Red ' 0 Green ' 1 Blue ' 2 End Enum ``` 3. **作用域控制** - `Public Enum`:工程全局可用 - `Private Enum`:仅模块内可用(默认) ### 实际应用场景 ```vba ' 声明枚举 Public Enum WebStatus Loading = 100 Success = 200 NotFound = 404 ServerError = 500 End Enum ' 使用枚举 Sub HandleResponse(code As WebStatus) Select Case code Case WebStatus.Success Debug.Print "请求成功" Case WebStatus.NotFound Debug.Print "资源不存在" End Select End Sub ' 调用示例 HandleResponse WebStatus.Success ' 输出"请求成功" ``` ### 优势与注意事项 ✅ **优势** - 代码自文档化(无需注释解释数字含义) - 编译时类型检查(避免无效值) - 智能提示支持(输入时自动显示成员) ⚠️ **注意** - 枚举成员必须是唯一的长整型(Long) - 不能动态修改枚举值(运行时固定) - 避免跨模块同名枚举(用模块名前缀区分)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值