enum

可以看成一个内容固定的集合,enum类中的枚举变量就是继承这个enum类的实例化对象.

public enum human{
//man,woman                     ---定义man和woman的同时实例化.
//man(1,"男人"),woman(2,"女人")             ---也可以在下面自己重写构造方法后用带参数的构造方法实例化
private String name;
private int index;
private human(int index,String name){
this.index = index;
this.name = name;
}

}


man woman 都是human的静态实例,可直接调用


未完......................

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、付费专栏及课程。

余额充值