首页
学习
活动
专区
圈层
工具
发布

什么是枚举和定义枚举

一、什么情况下使用枚举类?   有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便? 二、为什么不用静态常量来替代枚举类呢?...三、枚举类入门   先看一个简单的枚举类。...package enumcase; public enum SeasonEnum { SPRING,SUMMER,FALL,WINTER; } enum和class、interface的地位一样...使用enum定义、非抽象的枚举类默认使用final修饰,不可以被继承。 枚举类的构造器只能是私有的。 四、枚举类介绍   枚举类内也可以定义属性和方法,可是是静态的和非静态的。...枚举类通常应该设计成不可变类,它的Field不应该被改变,这样会更安全,而且代码更加简洁。所以我们将Field用private final修饰。 五、枚举类实现接口   枚举类可以实现一个或多个接口。

1.8K100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    常量和枚举

    取的时候只需要给前面和中间的地址,如果是整形、浮点型会有多份拷贝,但这些数写在指令中。...对于int型常量,引用const的地方拿到的是内存地址,地址数据和int差不多,所以内存上应该不会有太大区别。 另外,const对编译器和调试器来说更加友好。这一点可以作为一个很重要的参考。...Apple 文档: Adopting Modern Objective-C 对于 Objective-C 来说,枚举类型建议使用 NS_ENUM 和 NS_OPTIONS 宏。...因为它们有更强大的类型检查和代码补全。此外,这个语法提供枚举的方式也兼容旧编译器,当然新编译器可以更好的解析出其隐含的类型信息。...选项和枚举的差别是枚举只能出现一项,选项可以出现一项或几项,所以选项使用位运算 #define vs const in Objective-C What is the best way to create

    71520

    联合和枚举

    联合体 1.1 联合体类型的声明 联合体和结构体类似,但是又结构体又不同,结构体中的每个成员都是独立的,修改其中任意一个值不会影响另外一个值,但是在联合体中,修改其中一个值,一定会有另一个值跟随他发生改变...1.3 相同成员的结构体和联合体对⽐ 我们再对⽐⼀下相同成员的结构体和联合体的内存布局情况 struct S {  char c;  int i; }; struct S s = {0};  union...每⼀种商品都有:库存量、价格、商品类型和商品类型相关的其他信息。...枚举类型 2.1 枚举类型的声明 枚举顾名思义就是⼀⼀列举。 把可能的取值⼀⼀列举。...我们可以使⽤ #define 定义常量,为什么⾮要使⽤枚举? 枚举的优点: 1. 增加代码的可读性和可维护性 2. 和#define定义的标识符⽐较枚举有类型检查,更加严谨。 3.

    27800

    TypeScript-数字枚举和字符串枚举

    TypeScript-数字枚举和字符串枚举TS 中支持两种枚举, 一种是 数字枚举, 一种是 字符串枚举数字枚举默认情况下就是数字枚举enum Gender { Male, Female}console.log...}console.log(Gender.Male);也可以根据原始值获取到枚举值enum Gender { Male, Female}console.log(Gender[0]);字符串枚举如果使用字符串给前面的枚举值赋值了...);console.log(Gender.Female);字符串枚举注意点如果使用字符串给前面的枚举值赋值了, 那么后面的枚举值也必须手动赋值上面已经介绍了和数字枚举不一样, 字符串枚举不能使用常量或者计算结果给枚举值赋值虽然字符串枚举不能够使用常量或者计算结果给枚举值赋值...(Gender.Yao);异构枚举枚举中既包含数字又包含字符串, 我们就称之为 异构枚举enum Gender { Male = 6, Female = 'nv'}console.log(Gender.Male...大家点赞支持一下哟~ 我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表图片

    68710

    【C语言】联合和枚举

    ];//设计 int colors;//颜⾊ int sizes;//尺⼨ }; 我们用结构可以很快的写出来,但是这样会占用一些不必要的内存,例如图书没必要录入它的颜色,设计等属性,杯子也没有书名和作者..., Sun }; enum Day就是枚举类型,大括号中的内容为枚举类型的可能取值,也叫枚举常量,这些枚举常量都是有值的,默认从0开始,依次递增1,也可以赋初始值 enum Day { Mon,...#define也可以完成枚举这样的效果,那为什么我们还要使用枚举呢?...①增强代码的可读与可维护性 ②和#define相比枚举有类型检查,更加安全严谨 ③便于调试,在预处理阶段,会删除#define定义的符号,直接用所替换的值替换,导致预处理与真实代码不统一,无法更好地调试...Sat, Sun }; enum Day today = Mon; 使用枚举常量为枚举变量赋值,在C语言中可以用整数来给枚举变量赋值,但在C++中不可以 今日分享就到这里了

    32010

    ⾃定义类型:联合和枚举

    Day , enum Month 都是枚举类型。...{}中的内容是枚举类型的可能取值,也叫 枚举常量 这些可能取值都是有值的,默认从0开始,依次递增1,当然在声明枚举类型的时候也可以赋初值。...枚举的优势 1. 增加代码的可读性和可维护性 2. 和#define定义的标识符⽐较枚举有类型检查,更加严谨。 3. 便于调试,预处理阶段会删除 #define 定义的符号 4....枚举常量是遵循作⽤域规则的,枚举声明在函数内,只能在函数内使⽤ 我们在以后的 枚举的使用 enum Color//三原色 { RED, GREEN=4, BLUE, }; 如果使用#define...=4 }; enum Color clr = GREEN; //使⽤枚举常量给枚举变量赋值 5.完结 本次博客到此结束 祝开心每一天~~~ 最后觉得博客有帮助,可以点点关注,支持一下,期待下次博客~

    7610

    ⾃定义类型:联合和枚举

    3 相同成员的结构体和联合体对⽐ 结构体: 结构体内存分布: 联合体: 联合体内存分布: 4 联合体⼤⼩的计算 4.1规则: •联合的⼤⼩⾄少是最⼤成员的⼤⼩。...2 枚举类型的使⽤ 注意:那是否可以拿整数给枚举变量赋值呢?在C语⾔中是可以的,但是在C++是不⾏的,C++的类型检查⽐较严格。 2 枚举类型的优点 为什么使⽤枚举?...我们可以使⽤ #define 定义常量,为什么⾮要使⽤枚举? 枚举的优点: 1. 增加代码的可读性和可维护性 2....和#define定义的标识符⽐较枚举有类型检查,更加严谨。 3. 便于调试,预处理阶段会删除 #define 定义的符号 4. 使⽤⽅便,⼀次可以定义多个常量 5....枚举常量是遵循作⽤域规则的,枚举声明在函数内,只能在函数内使⽤ 本篇文章就到此结束,欢迎大家订阅我的专栏,欢迎大家指正,希望有所能帮到读者更好的了解联合和枚举,觉得有帮助的还请三联支持一下~后续会不断更新

    9210

    转向Kotlin——枚举类和扩展

    枚举类 Kotlin中的枚举类和Java中的枚举类型非常相似,具有类的特性。一般将可枚举的同类型的一组值作为枚举类定义。...,这个数并不一定从0开始,也不一定是按顺序的,因此枚举值在枚举类中的位置和枚举值对应的数值可能并不相同。...无论是Java还是Kotlin都提供了相应的API来获取枚举值的名字和索引。Kotlin提供了name和ordinal属性,分别用于获取枚举值名和索引。...扩展原生API 尽管JDK和Kotlin原生提供了很丰富的API,但这些API似乎仍然不够用,就需要为这些Library添加额外的API。...在类的外部对系统的类进行扩展,由于将扩展的部分都放到了自己的源代码中,因此这些源代码仍然可以运行在其他机器的JDK和Kotlin运行时上。

    1.7K20
    领券