C++枚举类型
总结一下C++里面的枚举类就是为了方便字符表示数据的一种方式吧,java枚举类也差不多
默认情况下,一个枚举变量没赋值的话则编译器赋为0,后面一次加1
枚举类型默认为int类型,也可以赋值其他数字类型
枚举的取值范围就不太纠结,感觉没啥用;枚举和switch配合,很棒
enum example { //声明example为新的数据类型,称为枚举(enumeration);
Aa, Bb, Cc //声明Aa, Bb, Cc等为符号常量,通常称之为枚举量,其值默认分别为0,1,2
};
enum example {
Aa = 1, Bb, Cc = 1,Dd, Ee //1 2 1 2 3 未被初始化的枚举值的值默认将比其前面的枚举值大1。
};
enum example : unsigned char //将类型指定成unsigned char,枚举变量变成了8位整型,减少内存使用。
{
Aa, Bb = 10, Cc
};
enum example : float //ERROR!枚举量必须是一个整数,float不是整数(double也不行)。
{
Aa, Bb = 10, Cc
};
Dd = Bb; //ok
Dd = Cc; //ok
Dd = 5; //Error!因为5不是枚举量
int a = Aa; //ok.枚举量是符号常量,赋值时编译器会自动把枚举量转换为int类型。
Aa++; //非法!
Dd = Aa + Cc //非法!
int a = 1 + Aa //Ok,编译器会自动把枚举量转换为int类型。
Dd = example(2);
//等同于
Dd = Cc
//若试图将一个超出枚举取值范围的值通过强制转换赋给枚举变量
Dd = example(10); //结果将是不确定的,这么做不会出错,但得不到想要的结果
enum enumType{
Step0, Step1, Step2
}Step=Step0; //注意这里在声明枚举的时候直接定义了枚举变量Step,并初始化为Step0
switch (Step)
{
case Step0:{…;break;}
case Step1:{…;break;}
case Step2:{…;break;}
default:break;
}
java枚举类
java枚举类似乎提供了更多的功能特性,甚至还可以重写compareTo()方法来实现特殊的枚举对象的比较
但似乎项目工程里面很多时候都把枚举类当作是,“多属性值”的“静态常量”
public enum ProjectNodeCodeEnum {
APPLICATION_ACCEPTANCE("1001" , "申请受理"),//确认受理后
FORMAL_ACCEPTANCE("1002" , "正式评估"),//发起评审时 进行中, 专家流程结束回调
SUBMIT_CNIO("1003" , "报送国家网信办"),//专家流程结束回调时 进行中, 报送国家网信办 已通过
APPROVED_BY_CNIO("1004" , "国家网信办审批");//报送国家网信办时 进行中 , 国家网信办流程结束回调
ProjectNodeCodeEnum(String code , String name) {
this.code = code;
this.name = name;
}
private final String code;
private final String name;
public String getCode() {
return code;
}
public String getName() {
return name;
}
}
标签:Aa,Bb,Cc,Dd,C++,枚举,example
From: https://www.cnblogs.com/jay-home/p/17775770.html