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

什么是枚举和定义枚举

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

2.1K100

常量和枚举

甚至有相同后缀的字符串也可以优化,你可以用GCC 编译测试,”Hello world” 与 “world” 两个字符串,只存储前面一个。...如何选择 尽量选择使用const,因为编译器通常不为普通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

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

    联合和枚举

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

    60400

    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腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表图片

    93310

    CA1028:枚举存储应为 Int32

    项 “值” RuleId CA1028 类别 设计 修复是中断修复还是非中断修复 重大 原因 枚举的基础类型不是 System.Int32。...默认情况下,此规则仅查看外部可见的枚举,但这是可配置的。 规则说明 枚举是一种值类型,它定义一组相关的已命名常数。 默认情况下,System.Int32 数据类型用于存储常量值。...如果无法使用默认数据类型,则应使用某种符合公共语言规范 (CLS) 的整型类型,例如 Byte、Int16、Int32 或 Int64,以确保枚举的所有值都可以用符合 CLS 的编程语言表示。...editorconfig 文件: dotnet_code_quality.CAXXXX.api_surface = private, internal 示例 下面的示例演示了两个不使用建议的基础数据类型的枚举...CA1027:用 FlagsAttribute 标记枚举 CA2217:不要使用 FlagsAttribute 标记枚举 CA1700:不要命名“Reserved”枚举值 CA1712:不要将类型名用作枚举值的前缀

    85410

    从零开始学Mysql - 连接管理和存储引擎

    从零开始学Mysql - 连接管理和存储引擎 前言 本篇为个人mysql专栏的第二篇,第二篇将会是关于连接管理以及存储引擎的讨论,以及mysql底层的交互过程,这个概念在之前的mysql专栏中有提到过...概述 客户端和服务端的连接过程 Tcp/ip 方式:重点为IP地址和端口 命名管道和共享内存:window独有的连接方式,但是没什么鸟用,不用理会 Unix域套接字文件:如果服务端修改套接字的默认监听文件...Mysql连接 连接方式 Tcp/IP Tcp是一种网络的通信协议,通常我们只需要关注两个参数,「IP和端口」,IP地址可以看作门牌号,而端口可以看作应用程序的入口,进行网络通信需要IP和端口号才能完成...连接管理 连接管理部分就是使用上面所说的连接方式进行服务端和客户端的交互,通常情况下我们会使用数据库连接池进行连接,所以mysql会为每一个连接的客户端分配一个线程进行交互,但是交互完成之后 「并不是马上把线程销毁...第二部分是 「存储引擎」,它才是真正干活的角色,主要负责数据的读取和存储,以及根据对外的接口进行实际的数据操作,最后这两个部分通过「统一的调度接口」进行关联,也就是说存储引擎需要实现特定的接口 API

    67720

    【C语言】联合和枚举

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

    49210

    ⾃定义类型:联合和枚举

    前言:通过前文,我们系统学习了结构体的相关知识,深入理解了自定义类型的概念与实践,承接上文,我们将继续学习新的自定义类型:联合和枚举。..."); } else { printf("大端存储"); } return 0; } ②利用联合体: 将整形变量和字符变量放在同一个联合体,赋予整型变量的值为1,通过访问字符变量,就能得到整形变量中的第一个字节...,若第一个字节为1则说明其是小端存储,反之若第一个字节为0则说明其是大端存储。   ...增加代码的可读性和可维护性 对于#define 定义的常量,需要进行单独修改,而通过枚举定义的枚举常量,可以做到成群修改。 ②....和#define定义的标识符相⽐较,枚举有类型检查,更加严谨。 ③. 便于调试,预处理阶段会删除 #define 定义的符号 ④. 使⽤⽅便,⼀次可以定义多个常量 ⑤.

    27510

    联合体和枚举

    int colors;//颜⾊ int sizes;//尺⼨ }shirt; }item; }; 判断大小端 在【C语言篇】数据在内存中的存储我们讲过数据在内存中存储分为大端和小端...⼤端(存储)模式: 是指数据的低位字节内容保存在内存的⾼地址处,⽽数据的⾼位字节内容,保存在内存的低地址处。...我们可以使⽤ #define 定义常量,为什么⾮要使⽤枚举? 枚举的优点: 增加代码的可读性和可维护性 和#define定义的标识符⽐较,枚举有类型检查,更加严谨。...printf("选择错误,重新选择\n"); break; } } while (input); return 0; } 以上就是关于联合体和枚举的详细介绍啦...”); break; } } while (input); return 0; } 以上就是关于联合体和枚举的详细介绍啦

    56410

    ⾃定义类型:联合和枚举

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

    18810

    ⾃定义类型:联合和枚举

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

    15410

    转向Kotlin——枚举类和扩展

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

    2K20
    领券