barriers / 阅读 / 详情

Swift 枚举(enum)详解

2023-07-14 18:04:51
共1条回复
cloudcone

Swift基础语法总结,来自 苹果官方文档 :

枚举在Swift中是 first-class types。与C,Objective-C中的枚举相比,Swift中枚举功能更强大。它支持很多只有类才有的特性,如: Properties , Methods , Initialization , Extensions , Protocols .

举例:

通常将单个枚举值与switch语句匹配:

当需要迭代枚举中的所有情况时,需要自定义的枚举遵守 CaseIterable 协议

我们可以定义Swift枚举来存储任何给定类型的关联值,而且每种枚举情况的值类型可以不同。

可以将关联值提取为switch语句的一部分。将每个关联值提取为常量(let)或变量(var),以便在switch中处理:

如果枚举case的所有关联值都被提取为常量,或者都被提取为变量,则可以将var或let放置在case名称前面,来提取所有的关联值:

“ 关联值 ”表明了枚举如何存储不同类型的关联值。作为关联值的替代,枚举情况可以预先设置默认值(称 原始值 ),它们都是相同的类型。

原始值可以是字符串,字符,整数或浮点数类型。每个原始值在其枚举声明中必须是唯一的。

当使用存储整数或字符串原始值的枚举时,不必为每种case显式分配原始值,Swift将自动为其分配值。如果使用整数为原始值,则每个case的原始值依次自增1。若第一个case没有设置原始值,则默认为0:

当使用字符串作为原始值时,每个case的隐含值是该case的名称。

使用枚举的 rawValue 属性来访问其原始值:

如果使用原始值类型定义枚举,则枚举会自动接收一个带有原始值的初始化器,并返回可选类型的枚举实例。

递归枚举是将枚举的另一个实例作为一个或多个枚举case的关联值。在枚举case 前面添加关键字 indirect 来指明该枚举case是递归的,这就告诉了编译器插入必要的间接层。

例如,下面是存储简单算术表达式的枚举:

还可以在枚举 enum 之前添加 indirect ,以便为所有具有关联值的枚举case启用间接:

递归函数是处理具有递归结构的数据的简单方法。例如,这是一个计算算术表达式的函数:

Swift 4.2 基础专题详解

相关推荐

enum在c语言中是什么意思?

enum是计算机编程语言中的一种数据类型。枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内。C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。赋值和使用枚举类型在使用中有以下规定:1、枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。2、枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,sat值为6。只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如一定要把数值赋予枚举变量,则必须用强制类型转换。以上内容参考:百度百科-ENUM
2023-07-14 15:01:242

c语言enum是什么意思

枚举类型关键字
2023-07-14 15:02:085

枚举类型enum用法

enum是用来声明枚举类型数据。它可以像数组一样存储许多的元素,但是不同于数组的是,它除了数字不能存储以外,其他类型的如字母、特殊符号、汉字都可以以任意组合存入enum当中去。enum的声明:enum A { a, b, c };enum声明不同于数组,其只可以声明在Main()方法体外,在Main()中可以被调用。enum的枚举数值默认是从0开始的,但是也可以强制元素序列进行改变。enum A {a=1, b, c};这样就可以实现了。enum可以通过枚举名加点通过枚举的元素访问枚举数值。例:int i = (int)A.a;枚举值虽然是int类型的,但是也必须进行显示的强制转换。同样enum也可以通过枚举数值来访问枚举内的各个元素。方法是:Console.WriteLine( " (A)1 " );这样就可以访问enum内的各个元素。
2023-07-14 15:02:441

枚举类型enum用法

枚举类型enum的用法如下文所示:枚举enum就是英文enumerate的缩写,也就是呢列举、排列说明的意思。枚举类型是C语言中的一种特殊类型,枚举类型可以让我们的程序使用一些固定长度和固定数值的变量值范围。定义枚举类型:enum 枚举类型 {枚举值列表};1、定义枚举类型2、如果在定义枚举类型时指定元素的值,也可以改变枚举元素的值例如:enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat}day;这时,sun 为 7,mon 为 1,以后元素顺次加 1,所以 sat 就是 6 了。3、枚举值可以用来作判断例如:if (day==month) {…}if (day>month) {…}枚举值的比较规则是:按其在说明时的顺序号比较,如果说明时没有人为指定,则第一个枚举元素的值认作 0。4、一个整数不能直接赋给一个枚举变量,必须强制进行类型转换才能赋值
2023-07-14 15:02:591

enum在c语言中是什么意思?

enum在c语言中是枚举类型的意思,枚举类型的定义形式为enum typeName。java使用enum定义常量类型,常量本身带有类型信息,可以使用==比较。enum定义的类型是class,继承自java.lang.Enum,所有常量都是唯一引用实例,常量可用于switch语句。name()获取常量定义的字符串,注意不要使用toString(),ordinal()返回常量定义的顺序(无实质意义),可以为enum类编写构造方法、字段、方法,构造方法必须为private。新的数据类型定义完成后,它就可以使用了。我们已经见过最基本的数据类型,如:整型int, 单精度浮点型float, 双精度浮点型double, 字符型char, 短整型short等等。枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号隔开。DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。可以人为设定枚举成员的值,从而自定义某个范围内的整数。枚举型是预处理指令#define的替代。
2023-07-14 15:04:001

c语言enum用法

  c语言enum是枚举类型,枚举类型是将一类有关联的标识组合起来,枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号隔开,外层用{}括起来。   c语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐。C语言编译器普遍存在于各种不同的操作系统中,例如MicrosoftWindows、macOS、Linux、Unix等。C语言的设计影响了众多后来的编程语言,例如C++、Objective-C、Java、C#等。C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%到20%。因此,C语言可以编写系统软件。
2023-07-14 15:04:141

enum是什么类型的

枚举类型
2023-07-14 15:04:347

什么是Enum?

Enum 定义的是枚举变量。变量和参数都可以定义为 Enum 类型。Enum 类型中的元素被初始化为 Enum 语句中指定的常数值。所赋给的值可以包括正数和负数,且在运行时不能改变。你可以把它理解为一个常数集合。方便实用。最常用的地方是用作函数的参数类型。假设有个GetSeason函数返回某月所在的季节:不用枚举则定义为:GetSeason(Month As Integer) As Integer则参数Month取值1到12表示一到十二月,返回值1-4表示春夏秋冬四季。但这样做程序可读性明显不佳。使用枚举:Enum Months January = 1 February March April May June July August September October November DecemberEnd EnumEnum Seasons Spring = 1 Summer Autumn WinterEnd Enum则函数定义为:GetSeason(Month As Months) As Seasons调用时可以写:iSeason = GetSeason(August)If GetSeason(August) = Spring Then Msgbox "你瞎说。"
2023-07-14 15:04:491

C++中enum的用法

对,差不多。
2023-07-14 15:05:004

enum在c语言中怎么用

1.enum是枚举变量一般的定义方式如下:enumenum_type_name{ ENUM_CONST_1, ENUM_CONST_2, ... ENUM_CONST_n}enum_variable_name;注意:enum_type_name是自定义的一种数据数据类型名,而enum_variable_name为enum_type_name类型的一个变量,也就是我们平时常说的枚举变量。实际上enum_type_name类型是对一个变量取值范围的限定,而花括号内是它的取值范围,即enum_type_name类型的变量enum_variable_name只能取值为花括号内的任何一个值,如果赋给该类型变量的值不在列表中,则会报错或者警告。ENUM_CONST_1、ENUM_CONST_2、...、ENUM_CONST_n,这些成员都是常量,也就是我们平时所说的枚举常量(常量一般用大写)。2.enum变量类型还可以给其中的常量符号赋值,如果不赋值则会从被赋初值的那个常量开始依次加1,如果都没有赋值,它们的值从0开始依次递增1。如分别用一个常数表示不同颜色:enumColor{ GREEN=1, RED, BLUE, GREEN_RED=10, GREEN_BLUE}ColorVal;其中各常量名代表的数值分别为: GREEN=1 RED=2 BLUE=3 GREEN_RED=10 GREEN_BLUE=113.在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。
2023-07-14 15:05:181

c语言enum用法

具体如下:在定义enum的同时,声明变量:enumMonth{Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,dec}a,b;这样就声明了两个枚举类型a和b定义完enum之后再声明变量:enumMonth{Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,dec};定义匿名的枚举变量enum{Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,dec}a。C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
2023-07-14 15:05:251

Java 中 Enum 如何继承?

Java 5新增的enum关键词,可以定义枚举类。该类是一个特殊的类,可以定义自己的field、方法、可以实现接口,也可以定义自己的构造器。 但枚举类使用enum定义后在编译后默认继承了java.lang.Enum类,而不是普通的继承Object类。enum声明类继承了Serializable和Comparable两个接口。且采用enum声明后,该类会被编译器加上"final"声明(同String),故该类是无法继承的。枚举类的内部定义的枚举值就是该类的实例(且必须在第一行定义,当类初始化时,这些枚举值会被实例化)。 由于这些枚举值的实例化是在类初始化阶段,所以应该将枚举类的构造器(如果存在),采用private声明(这种情况下默认也是private)。另外补充一点,由于JVM类初始化是线程安全的,所以可以采用枚举类实现一个线程安全的单例模式。
2023-07-14 15:05:352

使用Enum定义枚举类型

定义public enum UseType{}后面应该有个分号
2023-07-14 15:05:422

枚举 enum 这样写对吗

这样写,语法上允许,编译没错,但没法使用,你类似于只定义了 一个 结构,而没有 声明 一个 对象 或 变量。enum {Sun, Mon, Tues, Wed, Thur, Fri, Sat} x; 这就可以了。x 是 这种 类型的 变量。程序里可以 用 x 了。例如:#include<stdio.h>#include <stdlib.h>enum {Sun, Mon, Tues, Wed, Thur, Fri, Sat} x;main(){x = Tues; // 使用printf("%d",x);}
2023-07-14 15:05:562

mysql中enum类型怎么设置

`aa` enum("a","b")
2023-07-14 15:06:063

关于c语言中enum类型与循环

应该没问题。要不就是楼上的说法
2023-07-14 15:06:163

怎样定义enum类型使其成为static类型

using System;public class GetNameTest { enum Colors { Red, Green, Blue, Yellow }; enum Styles { Plaid, Striped, Tartan, Corduroy }; public static void Main() { Console.WriteLine("The 4th value of the Colors Enum is {0}", Enum.GetName(typeof(Colors), 3)); Console.WriteLine("The 4th value of the Styles Enum is {0}", Enum.GetName(typeof(Styles), 3)); }}
2023-07-14 15:06:371

枚举类型的用法?

C/C++中枚举类型(enum)如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔合中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它! enum box{pencil,pen};//这里你就定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也称枚举元素在这里是pencil和pen,分别表示铅笔和钢笔。 在这里要说一下,如果你想定义两个具有同样特性枚举类型的变量那么你可以用如下的两种方式进行定义! enum box{pencil,pen}; enum box box2;//或者简写成box box2; 再有一种就是在声明的时候同时定义。 enum {pencil,pen}box,box2; //在声明的同时进行定义! 枚举变量中的枚举元素系统是按照常量来处理的,故叫枚举常量,他们是不能进行普通的算术赋值的,(pencil=1;)这样的写发是错误的,但是你可以在声明的时候进行赋值操作! enum box{pencil=1,pen=2}; 但是这里要特别注意的一点是,如果你不进行元素赋值操作那么元素将会被系统自动从0开始自动递增的进行赋值操作,说到自动赋值,如果你只定义了第一个那么系统将对下一个元素进行前一个元素的值加1操作,例如 enum box{pencil=3,pen};//这里pen就是4系统将自动进行pen=4的定义赋值操作! C++ 中的枚举类型继承于 C 语言。就像其他从 C 语言继承过来的很多特性一样,C++ 枚举也有缺点,这其中最显著的莫过于作用域问题——在枚举类型中定义的常量,属于定义枚举的作用域,而不属于这个枚举类型。例如下面的示例:enum FileAccess { Read = 0x1, Write = 0x2,};FileAccess access = ::Read; // 正确FileAccess access = FileAccess::Read; // 错误C++枚举的这个特点对于习惯面向对象和作用域概念的人来说是不可接受的。首先,FileAccess::Read 显然更加符合程序员的直觉,因为上面的枚举定义理应等价于如下的定义(实际上,.NET 中的枚举类型便是如此实现的):class FileAccess { static const int Read = 0x1; static const int Write = 0x2;};其次,这导致我们无法在同一个作用域中定义两个同样名称的枚举值。也就是说,以下的代码是编译错误:enum FileAccess { Read = 0x1, Write = 0x2,};enum FileShare { Read = 0x1, // 重定义 Write = 0x2, // 重定义};如果这一点没有让你恼怒过的话,你可能还没写过多少 C++ 代码 :-)。实际上,在最新的 C++0x 标准草案中有关于枚举作用域问题的提案,但最终的解决方案会是怎样的就无法未卜先知了,毕竟对于象 C++ 这样使用广泛的语言来说,任何特性的增删和修改都必须十分小心谨慎。当然,我们可以使用一些迂回的方法来解决这个问题(C++ 总是能给我们很多惊喜和意外)。例如,我们可以把枚举值放在一个结构里,并使用运算符重载来逼近枚举的特性:struct FileAccess { enum __Enum { Read = 0x1, Write = 0x2 }; __Enum _value; // 枚举值 FileAccess(int value = 0) : _value((__Enum)value) {} FileAccess& operator=(int value) { this->_value = (__Enum)value; return *this; } operator int() const { return this->_value; }};我们现在可以按照希望的方式使用这个枚举类型:FileAccess access = FileAccess::Read;并且,因为我们提供了到 int 类型的转换运算符,因此在需要 int 的地方都可以使用它,例如 switch 语句:switch (access) { case FileAccess::Read: break; case FileAccess::Write: break;}当然我们不愿意每次都手工编写这样的结构。通过使用宏,我们可以很容易做到这一点:#define DECLARE_ENUM(E) struct E { public: E(int value = 0) : _value((__Enum)value) { } E& operator=(int value) { this->_value = (__Enum)value; return *this; } operator int() const { return this->_value; } enum __Enum {#define END_ENUM() }; private: __Enum _value; };我们现在可以按如下的方式定义前面的枚举,并且不比直接写 enum 复杂多少。DECLARE_ENUM(FileAccess) Read = 0x1, Write = 0x2,END_ENUM()DECLARE_ENUM(FileShare) Read = 0x1, Write = 0x2,END_ENUM()
2023-07-14 15:06:441

怎么获取enum的变量名称

可以这样做:NUMBERLIST s = (NUMBERLIST)Enum.Parse(typeof(NUMBERLIST), 1);
2023-07-14 15:06:524

什么是枚举常量

枚举的值可读不可写
2023-07-14 15:07:024

C语言枚举类型是什么意思

就是你声明的这个枚举变量的值,只能取其中的东西,比如:enum {Monday,Tuesday,Wednesday,Thursday,Friday} weekday;那weekday这个变脸的值只能是{}中的值。(他们分别对应数字0,1,2,3,4,因为枚举型变量也是整型)
2023-07-14 15:07:191

ENUM/DNS是什么网元?有什么作用

简单地说,就是Domain Name System,翻成中文就是“域名系统”。 ENUM是IETF的电话号码映射工作组(Telephone Number Mapping working group, 简称ENUM)定义的一个协议——RFC2916,RFC2916的题目为“E.164号码和域名系统!
2023-07-14 15:07:281

VB怎么使用枚举数据类型?

Private Enum Weeks Sun = 0 Mon = 1 Tue = 2 Wed = 3 Thu = 4 Fri = 5 Sat = 6End EnumPrivate Sub Command1_Click()Dim a As Weeksa = Fri "这里就将a的值变为5了Print a "输出5End Sub
2023-07-14 15:08:022

mysql里 enum什么意思I

枚举,如性别,可使用这个类型
2023-07-14 15:08:112

enum中的元素可以是整数吗

不可以是整数,枚举值是标识符,也就是必须以字母/下划线开头,只包含字母、数字、下划线。
2023-07-14 15:08:182

C语言的const修饰和enum类型有什么区别

const是常量,enum是弱枚举
2023-07-14 15:08:282

typedef enum的用法

typedef enum{ RING_NO, RING1, RING2, RING3, //这里加一个,也没有问题 ,不加也可以。。} RE_RING;RE_RING p ;p--;//这个是错误的,, 没有给初始化。而且复制了也是常理,不能减少。。
2023-07-14 15:08:462

java中枚举用来干什么的?

枚举是一种规范它规范了参数的形式,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念 枚举像一个类,又像一个数组。Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。 当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。 1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。 2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义 变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。 3.Enum默认实现了java.lang.Comparable接口。 4.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”. 5.Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。 6.Enum还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。 7.Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0。 了解了这些基本特性,我们来看看如何使用它们。 1.遍历所有有枚举值. 知道了有values方法,我们可以轻车熟路地用ForEach循环来遍历了枚举值了。 for (Color c: Color.values()) System.out.println(“find value:” + c); 2.在enum中定义方法和变量,比如我们可以为Color增加一个方法随机返回一个颜色。 public enum Color { Red, Green, Blue; private static int number = Color.values().length ; public static Color getRandomColor(){ long random = System.currentTimeMillis() % number; switch ((int) random){ case 0: return Color.Red; case 1: return Color.Green; case 2: return Color.Blue; default : return Color.Red; } } } 可以看出这在枚举类型里定义变量和方法和在普通类里面定义方法和变量没有什么区别。唯一要注意的只是变量和方法定义必须放在所有枚举值定义的后面,否则编译器会给出一个错误。 3.覆载(Override)toString, valueOf方法 前面我们已经知道enum提供了toString,valueOf等方法,很多时候我们都需要覆载默认的toString方法,那么对于enum我们怎么做呢。其实这和覆载一个普通class的toString方法没有什么区别。 …. public String toString(){ switch (this){ case Red: return "Color.Red"; case Green: return "Color.Green"; case Blue: return "Color.Blue"; default: return "Unknow Color"; } } …. 这时我们可以看到,此时再用前面的遍历代码打印出来的是 Color.Red Color.Green Color.Blue 而不是 Red Green Blue. 可以看到toString确实是被覆载了。一般来说在覆载toString的时候我们同时也应该覆载valueOf方法,以保持它们相互的一致性。 4.使用构造函数 虽然enum不可以有public的构造函数,但是我们还是可以定义private的构造函数,在enum内部使用。还是用Color这个例子。 public enum Color { Red("This is Red"), Green("This is Green"), Blue("This is Blue"); private String desc; Color(String desc){ this.desc = desc; } public String getDesc(){ return this.desc; } } 这里我们为每一个颜色提供了一个说明信息, 然后定义了一个构造函数接受这个说明信息。 要注意这里构造函数不能为public或者protected, 从而保证构造函数只能在内部使用,客户代码不能new一个枚举值的实例出来。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。 5.实现特定的接口 我们已经知道enum可以定义变量和方法,它要实现一个接口也和普通class实现一个接口一样,这里就不作示例了。 6.定义枚举值自己的方法。 前面我们看到可以为enum定义一些方法,其实我们甚至可以为每一个枚举值定义方法。这样,我们前面覆载 toString的例子可以被改写成这样。 public enum Color { Red { public String toString(){ return "Color.Red"; } }, Green { public String toString(){ return "Color.Green"; } }, Blue{ public String toString(){ return "Color.Blue"; } }; } 从逻辑上来说这样比原先提供一个“全局“的toString方法要清晰一些。 总的来说,enum作为一个全新定义的类型,是希望能够帮助程序员写出的代码更加简单易懂在Java中,枚举类型本质上其实就是一个类,枚举中的常量都是该枚举类型的实例。虽然枚举类型有一些限制,比如不能再派生出子枚举类型,不能调用构造函数,不过我们仍然可以在枚举类型中定义构造函数、字段和方法
2023-07-14 15:08:561

enum在java中是什么意思

枚举 相当于多例设计模式
2023-07-14 15:09:061

java中的enum是整数。

java中的enum是整数。 A.正确B.错误正确答案:错误
2023-07-14 15:09:131

c++中enum的作用是什么?

std::enum不行,你可以用usingnamespacestd;(使用命名空间)加在程序开始,后面的std;;就可以不行.enum不在命名空间里面,所以不用std::.enum是一种数据类型.使用和int等等类型一样,不用加std::枚举好像只是字符串就算是{1,2,3,4}{1.2,1.3,1.4}也不是数值。枚举只是把一系列的字符串的值变为0,1,2,3……(默认从0开始,也可以指定起始的数值),例如{a,b,c,d}以后用到a都代表数值0,b代表1,c代表2;{a=5,b,c,d}以后用到a都代表数值5,b代表6,c代表7;我个人感觉枚举没有什么用,只是让程序用到的数值更有意义一点.枚举常配合switch语句使用:enumletter{a,b,c,d};swith(letter){casea:语句1;break;//letter的值为a(实质就是letter=0,你可以用cout<评论00加载更多
2023-07-14 15:09:342

c++,怎么输入枚举类型的元素 enum u{a,b,c}; cin>>a; ??? 怎么做啊?

缺省枚举类型的第一个值等于0,后续依次增1,可以认为是整形,其取值可以在类型定义中调整,如:enum u{a=1,b=-1,c=3}f;不能直接用cin直接输入数据到枚举变量,但可以先输入到整形变量,再赋值给枚举变量,也可以直接赋值常量:如:enum u{a=1,b=-1,c=3}f;int n;f = a;printf("%d ",f);//输出1f = b;printf("%d ",f);//输出-1f = 3;printf("%d ",f);//输出3cin>>f;printf("%d ",f);//不论输入什么值,f的值还是3cin>>n;f = n;printf("%d ",f);//输入什么值,f的值就是什么值
2023-07-14 15:09:443

enum 的作用

定义枚举类型时本质上就是在定义一个类别,只不过很多细节由编译器帮您完成了,所以某些程度上,enum关键字的作用就像是class或interface。具体可以参考文档和百度
2023-07-14 15:09:511

VB中Enum是什么意思?

定义枚举类型。 语法 [Public | Private] Enum name membername [= constantexpression] membername [= constantexpression] . . . End Enum 下面的示例演示用 Enum 语句定义一个命名常数的集合。在本例中是一些可以选择的颜色常数用于设计数据库的数据输入窗体。 Public Enum InterfaceColors icMistyRose = &HE1E4FF& icSlateGray = &H908070& icDodgerBlue = &HFF901E& icDeepSkyBlue = &HFFBF00& icSpringGreen = &H7FFF00& icForestGreen = &H228B22& icGoldenrod = &H20A5DA& icFirebrick = &H2222B2& End Enum 一定要赋值,以后用icFirebrick 代替 &H2222B2&还可以定义变量 dim a as InterfaceColors
2023-07-14 15:10:143

c语言enum是什么意思

c语言enum意思是枚举类型,属于c语言中的一种数据类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。扩展资料:c语言enum枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。c语言enum枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,sat值为6。只能把c语言enum枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如一定要把数值赋予枚举变量,则必须用强制类型转换。
2023-07-14 15:11:031

enum在c语言中是什么意思?

enum是计算机编程语言中的一种数据类型。枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内。C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。数据类型关键字short:修饰int,短整型数据,可省略被修饰的int。(K&R时期引入)long:修饰int,长整型数据,可省略被修饰的int。(K&R时期引入)long long:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)signed:修饰整型数据,有符号数据类型。(C89标准新增)unsigned:修饰整型数据,无符号数据类型。(K&R时期引入)restrict:用于限定和约束指针,并表明指针是访问一个数据对象的初始且唯一的方式。(C99标准新增)
2023-07-14 15:11:181

计算机C语言中的关键字:enum是什么意思?

枚举:是一个被命名的整型常数的集合
2023-07-14 15:11:352

enum怎么用?

11.10 枚举类型在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。11.10.1 枚举类型的定义和枚举变量的说明1. 枚举的定义枚举类型定义的一般形式为:enum 枚举名{ 枚举值表 };在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。例如:该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。2. 枚举变量的说明如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式:enum weekday{ sun,mou,tue,wed,thu,fri,sat };enum weekday a,b,c;或者为:enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c;或者为:enum { sun,mou,tue,wed,thu,fri,sat }a,b,c;11.10.2 枚举类型变量的赋值和使用枚举类型在使用中有以下规定:1. 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。例如对枚举weekday的元素再作以下赋值:sun=5;mon=2;sun=mon;都是错误的。2. 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。【例11.10】main(){enum weekday{ sun,mon,tue,wed,thu,fri,sat } a,b,c;a=sun;b=mon;c=tue;printf("%d,%d,%d",a,b,c);}说明:只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如:a=sum;b=mon;是正确的。而:a=0;b=1;是错误的。如一定要把数值赋予枚举变量,则必须用强制类型转换。如:a=(enum weekday)2;其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于:a=tue;还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。【例11.11】main(){enum body{ a,b,c,d } month[31],j;int i;j=a;for(i=1;i<=30;i++){month[i]=j;j++;if (j>d) j=a;}for(i=1;i<=30;i++){switch(month[i]){case a:printf(" %2d %c ",i,"a"); break;case b:printf(" %2d %c ",i,"b"); break;case c:printf(" %2d %c ",i,"c"); break;case d:printf(" %2d %c ",i,"d"); break;default:break;}}printf(" ");}
2023-07-14 15:11:512

c语言枚举类型enum用法

c语言枚举类型enum用法如下:(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。(2)DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。在当前值没有赋值的情况下,枚举类型的当前值总是前一个值+1.(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。(5) 枚举型是预处理指令#define的替代。(6) 类型定义以分号;结束。enum是C语言中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组整型值的集合(这句话其实不太妥当),枚举型是预处理指令#define的替代,枚举和宏其实非常类似,宏在预处理阶段将名字替换成对应的值,枚举在编译阶段将名字替换成对应的值。我们可以将枚举理解为编译阶段的宏,使用格式:enum typeName { valueName1, valueName2, valueName3, ...... };typeName是枚举类型的名字,花括号里面的元素(枚举成员)是常量而不是变量,这个一定要搞清楚,因为枚举成员的是常量,所以不能对它们赋值,只能将它们的值赋给其他的变量。枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。
2023-07-14 15:12:061

在C++中enum这样用为什么不行

这是百度百科的内容:enum枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。我具体举例:比如 我定义个枚举week{sun,mon,tue,wed,thu,fri,sat}然后 定义枚举变量 weel a;a就只能等于sun,mon,tue,wed,thu,fri,sat其中之一的值sun,mon,tue,wed,thu,fri,sat这些都有编号 默认是0,1,2,3,4,5,6...;也就是说如果说我 让 a=sun;这和 a=(enum week)0;是一样的
2023-07-14 15:12:241

enum 是什么意思

枚举类型
2023-07-14 15:12:332

可以说一下MYSQL中Enum字段的作用和具体用法吗

ENUM是枚举类型,它虽然只能保存一个值但却能够处理最多达 65,535 个预定义的值。
2023-07-14 15:12:411

C语言中enum是什么单词的缩写?谢谢!

Enumeration 枚举
2023-07-14 15:12:481

c++关于enum的用法

//************************************//做个修改就可以了,你再看看吧//***********************************#include<iostream> #include<cstring> using namespace std; void main() { enum in_message {A,D,S,Q}; //A,D,S,Q依次标号是0,1,2,3 in_message i; char t; cout<<"Menu:D(dd),A(elete),S(ort),Q(uit),请输入?"; cin>>t; // 不能把字符直接给枚举变量,不能给枚举变量直接给值 i=(in_message) t; //把整形强制转化成枚举类型 if(i=="D") cout<<"数据已经删除 "<<endl; else if(i=="A") cout<<"数据已经增加 "<<endl; else if(i=="S") cout<<"数据已经排序 "<<endl; else cout<<"没有这个操作 "; } //还需要解释的话,讲一声
2023-07-14 15:13:104

Java 中 Enum 如何继承?

Java字节码格式并不禁止继承java.lang.Enum,但是javac编译器硬性不让你继承java.lang.Enum。改用Scala编译器轻松继承Enum:classE(s:String,i:Int)extendsEnum[E](s,i)
2023-07-14 15:13:283

枚举是什么

问题一:枚举是什么意思? 枚举简单的说也是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的 *** 。举个例子,颜色也可以定义成枚举类型,它可以包含你定义的任何颜色,当需丁的时候,只需要通过枚举调用即可,另外比如说季节(春夏秋冬)、星期(星期一到星期日)等等这些具有共同投特征的数据都可以定义枚举。 问题二:枚举类型是什么意思 一般的定义方式如下: enum enum_type_name { ENUM_CONST_1, ENUM_CONST_2, ... ENUM_CONST_n } enum_variable_name; 注意:enum_type_name 是自定义的一种数据数据类型名,而enum_variable_name 为 enum_type_name类型的一个变量,也就是我们平时常说的枚举变量。实际上enum_type_name 类型是对一个变量取值范围的限定,而花括号内是它的取值范围,即enum_type_name 类型 的变量enum_variable_name 只能取值为花括号内的任何一个值,如果赋给该类型变量的值 不在列表中,则会报错或者警告。ENUM_CONST_1、ENUM_CONST_2、...、 ENUM_CONST_n,这些成员都是常量,也就是我们平时所说的枚举常量(常量一般用大写)。 enum 变量类型还可以给其中的常量符号赋值,如果不赋值则会从被赋初值的那个常量开始 依次加1,如果都没有赋值,它们的值从0 开始依次递增1。 下面举个例子:如分别用一个常数表示不同颜 色 enum Color { GREEN = 1, RED, BLUE, GREEN_RED骸= 10, GREEN_BLUE }ColorVal; 其中各常量名代表的数值分别为: GREEN = 1 RED = 2 BLUE = 3 GREEN_RED = 10 GREEN_BLUE = 11 内容应该说的差不多了。 问题三:枚举是什么意思 “枚举窗口”、“枚举进程”之类的词中,枚举的意思就是遍历列举。这两个词也就是列举出所有的窗口场所有运行的进程的意思。作为一种数据结构,枚举用一组标识符来表示常数。 问题四:什么是枚举???? 枚举 1.枚举 (enumeration) 值类型的一种特殊形式,它从 System.Enum 继承,并为基础基元类型的值提供备用名称。枚举类型有名称、基础类型和一组字段。基础类型必须是一个内置的有符号(或无符号)整数类型(如 Byte、Int32 或 UInt64)。字段是静态文本字段,其中的每一个字段都表示常龚。所使用的语言给每个字段都分配一个基础类型的特定值。 2.枚举(enum) 枚举是一个被命名的整型常数的 *** , 枚举在日常生活中很常见。 例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, 就是一个枚举。 枚举的说明与结构和联合相似, 其形式为: enum 枚举名{ 标识符[=整型常数], 标识符[=整型常数], ... 标识符[=整型常数], } 枚举变量; 如果枚举没有初始化, 即省掉=整型常数时, 则从第一个标识符开始, 顺 次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次 加1的规则确定其值。 例如下列枚举说明后, x1, x2, x3, x4的值分别为0, 1, 2, 3。 enum string{x1, x2, x3, x4}x; 当定义改变成: enum string { x1, x2=0, x3=50, x4, }x; 则x1=0, x2=0, x3=50, x4=51 注意: 1. 枚举中每个成员(标识符)结束符是,, 不是;, 最后一个成员可省略 ,。 2. 初始化时可以赋负数, 以后的标识符仍依次加1。 3. 枚举变量只能取枚举说明结构中的某个标识符常量。 例如: enum string { x1=5, x2, x3, x4, }; enum strig x=x3; 此时, 枚举变量x实际上是7。 3.枚举(pascal) 随着计算机的不断普及,程序不仅只用于数值计算,还更广泛地用于处理非数值的数据。例如:性别、月份、星期几、颜色、单位名、学历、职业等,都不是数值数据。 在其它程序设计语言中,一般用一个数值来代表某一状态,这种处理方法不直观,易读性差。如果能在程序中用自然语言中有相应含义的单词来代表某一状态,则程序就很容易阅读和理解。也就是说,事先考虑到某一变量可能取的值,尽量用自然语言中含义清楚的单词来表示它的每一个值,这种方法称为枚举方法,用这种方法定义的类型称枚举类型。 问题五:java中枚举用来干什么的? 枚举是该类型的一个实例,相当于static final 类型的变量,可用于switch中, 枚举类:package .golden.test;public enum Operation { /**增*/ INSERT, /**删*/ DELETE, /**改*/ UPDATE, /**查*/ QUERY}测试类package .golden.test;public class TestEnum { public static void main(String[] args) { System.out.println(Operation.DELETE); System.out.println(Operation.valueOf(DELETE)); System.out.println(Operation.valueOf(DELETE)==Operation.DELETE); System.out.println(DELETE.equals(Operation.DELETE.toString())); switch (Operation.DELETE) { case INSERT: /**TODO*/break; case DELETE: /**TODO*/System.out.println(DELETE...);break; case UPDATE:/**TODO*/break; case QUERY: /**TODO*/break; default: break; } }} 问题六:枚举值是什么意思 一、类型定义   类型定义的语法格式:   type   =;   =;   ……   =;   二、枚举类型   通过预定义列出所有值的标识符来定义一个有序 *** ,这些值的次序和枚举类型说明中的标识符的次序是一致的。枚举类型的形式:(标识符1,……,标识符n)   例如: type daystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday)   枚举元素只能是标识符,而不能是数值常量或字符常量。例如以下的定义是错误的:   type daystype=("sun","mon","tue","wed","thu","fri","sat")   枚举元素是标识符,不要把作为枚举元素的标识符视作变量名,它不能被赋值。同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。例如以下的定义是错误的:   type daytype1=(monday,tuesday);   daytype2=(monday,wednesday);   可以将枚举类型的定义和变量的定义结合在一起。例如:var a:(monday,tuesday,sunday)   枚举类型属于顺序类型。根据定义类型时各枚举元素的排列顺序确定它们的序列,序列号从0开始   例如:已经定义daystype   ord(sunday)=0,succ(sunday)=monday,pred(friday)=thursday   但是枚举类型中的第一个元素没有前趋,最后一个元素没有后继。Turbo Pascal不允许直接读写枚举值,所以枚举值的输出常用case语句间接的输出。枚举值的输入,则要一一判断读入字符是否是枚举类型的标识符。若是才能赋给枚举变量,否则就会出错。   例如:枚举值的输出   case day of   sunday:write("sunday");   monday:write("monday");   tuesday:write("tuesday");   wednesday:write("wednesday");   thursday:write("thursday");   friday:write("friday");   saturday:write(功saturday");   end;   三、子界类型   子界类型是由整型、字符型、枚举型、布尔型的两个常量指定该类型的值域区间。子界类型的形式:   常量..常量 两个常量必须是同一种顺序类型。例如:a..b,要求a> 问题七:枚举是什么意思 一个一个数 问题八:c语言中的枚举型什么意思 如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型。所谓“枚举”是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。声明枚举类型用enum开头。 例如 enum weekday{sun,mon,tue,wed,thu,fri,sat}; 上面声明了一个枚举类型weekday,花括号中sun,mon,…,sat等称为枚举元素或枚举常量。 表示这个类型的变量的值只能是以上7个值之一。它们是用户自己定义的标识符。 问题九:到底什么叫做“枚举数” 枚举是一个被命名的整型常数的 *** , 枚举在日常生活中很常见。 例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,   SATURDAY, 就是一个枚举。 枚举的说明与结构和联合相似, 其形式为: enum 枚举名 { 标识符[=整型常数], 标识符[=整型常数], ... 标识符[=整型常数] } 枚举变量; 如果枚举没有初始化, 即省掉=整型常数时, 则从第一个标识符开始, 顺次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次加1的规则确定其值。 如定义: public enum DayOfWeek { Monday = 1, …… Sunday = 7 }
2023-07-14 15:13:361

枚举类型enum用法 c语言switch的用法是什么

1、枚举常量是枚举类型中的值,即枚举值。枚举类型是一种用户定义的类型,只有用户在程序中定义它后才能被使用。用户通常利用枚举类型定义程序中需要使用的一组相关的符号常量。 2、枚举类型的定义格式为:enum枚举类型名> {枚举表>};它是一条枚举类型定义语句,该语句以enum保留字开始,接着为枚举类型名,它是用户命名的一个标识符,以后就直接使用它表示该类型,枚举类型名后为该类型的定义体,它是由一对花括号和其中的枚举表所组成,枚举表为一组用逗号分开的由用户命名的符号常量,每个符号常量又称为枚举常量或枚举值。
2023-07-14 15:13:421

enum函数的用法和意义

枚举(enum)枚举是一个被命名的整型常数的集合,枚举在日常生活中很常见。例如表示星期的SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,就是一个枚举。枚举的说明与结构和联合相似,其形式为:enum枚举名{标识符[=整型常数],标识符[=整型常数],...标识符[=整型常数],}枚举变量;如果枚举没有初始化,即省掉"=整型常数"时,则从第一个标识符开始,顺次赋给标识符0,1,2,...。但当枚举中的某个成员赋值后,其后的成员按依次加1的规则确定其值。例如下列枚举说明后,x1,x2,x3,x4的值分别为0,1,2,3
2023-07-14 15:13:513

c语言中 ,枚举类型enum 的枚举值,可以是什么类型的值? 一定是 int型吗

枚举就是个有符号的整形。所以CHAR,SHORT,INT都可以。如果ENUM长度可以在你机器上达到4,都可以存放指针。看你机器了。
2023-07-14 15:14:011

java的enum到底有什么用?

枚举是一种规范它规范了参数的形式,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念 枚举像一个类,又像一个数组。Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。 当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。 1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。 2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义 变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。 3.Enum默认实现了java.lang.Comparable接口。 4.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”. 5.Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。 6.Enum还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。 7.Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0。 了解了这些基本特性,我们来看看如何使用它们。 1.遍历所有有枚举值. 知道了有values方法,我们可以轻车熟路地用ForEach循环来遍历了枚举值了。 for (Color c: Color.values()) System.out.println(“find value:” + c); 2.在enum中定义方法和变量,比如我们可以为Color增加一个方法随机返回一个颜色。 public enum Color { Red, Green, Blue; private static int number = Color.values().length ; public static Color getRandomColor(){ long random = System.currentTimeMillis() % number; switch ((int) random){ case 0: return Color.Red; case 1: return Color.Green; case 2: return Color.Blue; default : return Color.Red; } } } 可以看出这在枚举类型里定义变量和方法和在普通类里面定义方法和变量没有什么区别。唯一要注意的只是变量和方法定义必须放在所有枚举值定义的后面,否则编译器会给出一个错误。 3.覆载(Override)toString, valueOf方法 前面我们已经知道enum提供了toString,valueOf等方法,很多时候我们都需要覆载默认的toString方法,那么对于enum我们怎么做呢。其实这和覆载一个普通class的toString方法没有什么区别。 …. public String toString(){ switch (this){ case Red: return "Color.Red"; case Green: return "Color.Green"; case Blue: return "Color.Blue"; default: return "Unknow Color"; } } …. 这时我们可以看到,此时再用前面的遍历代码打印出来的是 Color.Red Color.Green Color.Blue 而不是 Red Green Blue. 可以看到toString确实是被覆载了。一般来说在覆载toString的时候我们同时也应该覆载valueOf方法,以保持它们相互的一致性。 4.使用构造函数 虽然enum不可以有public的构造函数,但是我们还是可以定义private的构造函数,在enum内部使用。还是用Color这个例子。 public enum Color { Red("This is Red"), Green("This is Green"), Blue("This is Blue"); private String desc; Color(String desc){ this.desc = desc; } public String getDesc(){ return this.desc; } } 这里我们为每一个颜色提供了一个说明信息, 然后定义了一个构造函数接受这个说明信息。 要注意这里构造函数不能为public或者protected, 从而保证构造函数只能在内部使用,客户代码不能new一个枚举值的实例出来。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。 5.实现特定的接口 我们已经知道enum可以定义变量和方法,它要实现一个接口也和普通class实现一个接口一样,这里就不作示例了。 6.定义枚举值自己的方法。 前面我们看到可以为enum定义一些方法,其实我们甚至可以为每一个枚举值定义方法。这样,我们前面覆载 toString的例子可以被改写成这样。 public enum Color { Red { public String toString(){ return "Color.Red"; } }, Green { public String toString(){ return "Color.Green"; } }, Blue{ public String toString(){ return "Color.Blue"; } }; } 从逻辑上来说这样比原先提供一个“全局“的toString方法要清晰一些。 总的来说,enum作为一个全新定义的类型,是希望能够帮助程序员写出的代码更加简单易懂在Java中,枚举类型本质上其实就是一个类,枚举中的常量都是该枚举类型的实例。虽然枚举类型有一些限制,比如不能再派生出子枚举类型,不能调用构造函数,不过我们仍然可以在枚举类型中定义构造函数、字段和方法
2023-07-14 15:14:116