精华内容
下载资源
问答
  • Java 查看枚举类成员变量个数

    千次阅读 2018-11-01 22:08:15
    Java 枚举类成员方法 values 可以获取枚举类中的所有变量,并作为数组返回。 此时我们就可以利用数组的长度来得知 Java 枚举类中变量的个数,正好数组的 length 属性记录着这个个数。 所以方法就是 Enum.values()....

    虽然 Java 枚举类没有直接为我们提供这个属性,但是我们还是可以间接获取:
    Java 枚举类的成员方法 values 可以获取枚举类中的所有变量,并作为数组返回。
    此时我们就可以利用数组的长度来得知 Java 枚举类中变量的个数,正好数组的 length 属性记录着这个个数。
    所以方法就是 Enum.values().length

    对于 Java 枚举类,有两篇文章可以看看:
    http://www.cnblogs.com/hemingwang0902/archive/2011/12/29/2306263.html
    https://blog.csdn.net/qq_31655965/article/details/55049192

    展开全文
  • 结构体的成员名和变量名不在同一命名空间,编译器可以从语法上区分成员名和变量名,所以结构体的成员名和变量名可以取一样的,不冲突; 枚举类型的成员是常量,它们的值由编译器自动分配,从0开始,当然也可以人为...

    结构体的成员名和变量名不在同一命名空间中,编译器可以从语法上区分成员名和变量名,所以结构体的成员名和变量名可以取一样的,不冲突;

    枚举类型的成员是常量,它们的值由编译器自动分配,从0开始,当然也可以人为选择不从0开始分配。枚举常量也是一种整形,其值在编译时确定,因此也可以出现在常量表达式中。枚举的成员名和变量名在同一命名空间,所以变量名和枚举的成员名不可以一样,会出现命名冲突。

    编译器的工作分为两个阶段,预处理(preprocess)和编译阶段。用gcc 的-E选项可以看到预处理之后,编译之前的程序。用cpp命令也可以看到预处理之后,编译之前的程序。cpp的意思就是C preprocessor。宏定义以及#include都是在预处理阶段执行的。像这种以#号开头的行称为预处理指示。虽然include和define在预处理指示中有特殊的含义,但是它们并不是c语言的关键字,它们也可以用作标识符。在预处理阶段,如果一行以#开头,后面跟include或者define,预处理器就认为这是一条预处理指示。除此之外,出现在其他地方的include或者define预处理并不关心,只是当成普通标识符交给编译阶段去处理。

    宏定义之后的变量不可以重新定义,会冲突。

    展开全文
  • 关于枚举一些基础的认识我就不啰嗦了,这里只写我见到的比较有意思的做法。 对枚举类型的讨论主要都是在作用于上。我就什么也不说都在下面的代码里: #include<iostream> using namespace std; int main()...

    enum

    关于枚举一些基础的认识我就不啰嗦了,这里只写我见到的比较有意思的做法。

    对枚举类型的讨论主要都是在作用于上。我就什么也不说都在下面的代码里:

    #include<iostream>
    using namespace std;
    
    int main(){
    	enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
    	cout << Sun << endl;
    	cout << week::Sun << endl;
    	int Sun;//这句是错误的,因为枚举类型已经占用了Sun这个关键字啦,不能再使用了 
    	return 0;
    }
    

    enum class

    enum class (enum struct)这两种写法是等效的。上面的写法的缺点就是我们定义的枚举类型并没有将其内容保护起来,可以在外部随意调用,因此c++11就出现了enum class这种枚举类。

    还是都在代码里:

    #include<iostream>
    using namespace std;
    
    
    
    int main(){
    	enum class week {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
    	enum class week1:unsigned int {Sun, Mon, Tue, Wed, Thu, Fri, Sat};//指定枚举的底层类型 
    	cout << static_cast<int>(week::Sun) << endl;
    	int Sun;//这句话是对的,enum class解决了域的问题 
    	return 0;
    }
    

    解释:

    ---对枚举内容的引用,必须加上域名week::Sun,这样增加了安全性。

    ---enum class week1:unsigned int {Sun, Mon, Tue, Wed, Thu, Fri, Sat};可以指定枚举类型的底层类型。

    ---static_cast<int>(week::Sun)必须进行显性转换。

     枚举作为类的成员变量

    这是偶然得到的例子:

    #include<iostream>
    using namespace std;
    
    template<typename T>
    class V{
    	public:	
    	 enum { val = sizeof(T) };
    };
    
    int main(){
    
    	cout << V<int>::val << endl;
    	return 0;
    }

    结果:

    4

    这个操作也是让我瞠目结舌,我也不知道,这样操作的道理是什么,只知道可以这样用,如果你知道请给我留言。

     

    展开全文
  • 枚举类 #枚举类 public enum TrapVarComparison { EQ, NOEQ, CONTAIN, UNCONTAIN, REG,REGGROUP; } #Main函数 if (TrapVarComparison.EQ.equals...枚举类成员变量(有默认值) private ExecuteType executeType ...

    枚举

    # 与方法同级
    public enum TrapVarComparison {
    	EQ, NOEQ, CONTAIN, UNCONTAIN, REG,REGGROUP;
    }
    

    枚举 equals

    TrapVarComparison trapVarComparison = TrapVarComparison.EQ;
    if (TrapVarComparison.EQ.equals(trapVarComparison)) {
    }
    

    注意:如果将枚举类型直接跟字符串类型 equals ,是无法得到正确的结果的

    枚举作为方法参数

    test(TrapVarComparison.EQ);
    
    public void test(TrapVarComparison trapVarComparison){
    
    }
    

    枚举类成员变量(有默认值)

    private ExecuteType executeType = ExecuteType.PARALLEL;
    
    public enum ExecuteType {
    	SERIAL , PARALLEL 
    }
    
    public ExecuteType getExecuteType() {
    	return executeType;
    }
    
    public void setExecuteType(ExecuteType executeType) {
    	this.executeType = executeType;
    }
    

    扩展:成员变量可以设置初始默认值

    private int actionTimeout = 7200;
    
    public int getActionTimeout() {
    	return actionTimeout;
    }
    
    public void setActionTimeout(int actionTimeout) {
    	this.actionTimeout = actionTimeout;
    }
    

    枚举类成员变量(在构造函数中赋值)

    public class JobErrorBehaviorOption {
          
    	private String stepName;
    	
    	public String getStepName() {
    		return stepName;
    	}
    
    	public void setStepName(String stepName) {
    		this.stepName = stepName;
    	}
    	
    	private StepType stepType;
    	
    	public StepType getStepType() {
    		return stepType;
    	}
    
    	public void setStepType(StepType stepType) {
    		this.stepType = stepType;
    	}
    	
    	public enum StepType{
    		 cmd,  file
    	}
    
    	public JobErrorBehaviorOption(JobActionPojo actionPojo)
    	{
    		this.stepName = actionPojo.getActionName();
    		if("SCRIPT".equals(actionPojo.getActionType()))
    		{
    			this.stepType = StepType.cmd;
    		}
    		else if("SALT_TEMPLATE".equals(actionPojo.getActionType()))
    		{
    			this.stepType = StepType.file;
    		}
    	}
    	
    }
    
    List<JobErrorBehaviorOption> optionList = new ArrayList<JobErrorBehaviorOption>();
    JobActionPojo actionPojo = new JobActionPojo();
    // 相关逻辑 
    // 为actionPojo添加相关属性
    optionList.add(new JobErrorBehaviorOption(actionPojo));
    
    展开全文
  • java枚举类定义和使用

    万次阅读 热门讨论 2018-08-11 12:28:24
    开始时间 2018年8月11日11:04:35  结束时间 2018年8月11日12:30:37  累计+1小时 枚举类的对象是有限个 ... 2 成员变量如果声明为final。要在构造器初始化,不允许被修改、 3 通过公共方法 调用属性...
  • C++ 中枚举变量出现定义重复

    千次阅读 2017-12-11 15:00:16
    在使用C++的枚举过程会出现枚举变量重复的情况,特别是这两个枚举的作用域相同的情况下,如:enum HOUSE { big, small }; enum COMPUTER { big, small };编译的时候,就会报错:错误 1 error C2365: “big”...
  • enum枚举类型作为成员变量

    万次阅读 2013-12-13 11:11:09
    Enum是枚举类型。...}枚举变量1(,枚举变量2,……); 如 Enum weekday { Monday=0,Tuesday,Wednesday,Thursday,Friday=9,Saturday,Sunday }today; Weekday 为枚举类型名,today为枚举
  • I . 枚举类常用用法 II . 枚举类初始化 III. 枚举类匿名 IV . 枚举类实现接口 V . 获取枚举常量名称和位置索引 ... 获取枚举常量的成员变量 VII . 调用枚举常量的方法 VIII . Kotlin 枚举完整代码示例
  • 类中定义枚举

    千次阅读 2016-12-29 17:08:41
    类中定义枚举,可以直接当宏使用
  • 类中的const成员变量2009/07/08 12:38 有时我们希望某些常量只在类中有效。由于#define定义的宏常量是全局的,不能达到目的,于是想当然地觉得应该用const修饰数据成员来实现。const数据成员的确是存在的,但其...
  • 枚举类定义与使用

    千次阅读 2019-07-30 10:59:38
    其实枚举就是在一个定义几个静态变量,每个变量都是这个的实例。 比如说,Human有两个静态变量:Man,Woman,每一个变量都是Human的实例。用的时候就直接写Human.Man,Human.Woman,用的时候就直接用...
  • C++类中成员变量初始化

    千次阅读 2014-05-06 10:18:12
    C++规定成员变量在声明(注意声明与定义区别)时,不允许初始化,因此这些变量只能放在构造函数初始化列表。 静态成员变量所有实例化,只有一份内存拷贝,不能放在构造函数初始化, 因为共享
  • switch语句不能配合枚举成员变量使用怎么办? 写了个代码,需要使用枚举的来判断对于的事务处理 然而这里的编译器报错:constant expression required switch 的case,必须要用常量,想了一下,枚举里面的...
  • python枚举类定义和使用

    千次阅读 2020-09-19 15:35:30
    也就是说,对于这些实例化对象个数固定的,可以用枚举类定义。 例如,下面程序演示了如何定义一个枚举类: from enum import Enum class Color(Enum): # 为序列值指定value值 red = 1 green =
  • Java枚举类

    千次阅读 2019-01-31 21:12:15
    枚举类枚举类枚举类成员变量,方法,构造器实现接口包含抽象方法的枚举类 枚举类 枚举类的对象是有限而且固定的。 使用enum 关键词定义枚举类是一种特殊的 枚举类可以实现一个或多个接口,不能显式的继承其他...
  • 枚举中有这样一段定义 public class WeekDay(){ private WeekDay(){} public final static WeekDay SUN = new WeekDay() ...... } 后面就是这样得一些定义星期的代码 不明白的地方: 1.这里是枚举的问题:为...
  • C++类成员变量初始化位置

    千次阅读 2015-09-08 11:29:16
    static: static表示的是静态的。的静态成员函数、静态成员变量是和相关的,而... 在C++,static静态成员变量不能在的内部初始化。在的内部只是声明,定义必须在定义体的外部,通常在的实现文件初始
  • 成员变量初始化总结

    万次阅读 2015-04-08 11:52:23
    首先把需要初始化的成员变量分为几: Ø 一般变量(int) Ø 静态成员变量(static int) Ø 常量(const int ) Ø 静态常量(static const int)  对应的初始化方式是: Ÿ 一般变量可以在初始化列表里或者...
  • 昨天在修改项目函数功能时,在其中一个类中添加了一个静态成员变量和两个静态成员函数,结果在链接时出现一个非常典型的错误:“The follwing symbols referenced in processor “p0” could not be resolved:Class:...
  • 定义枚举的意义和场景 今天遇到了一个场景,页面有一个下拉框,里面两个选项:国有企业,民营企业。代码结构是这样的 [ { text: '国有企业', value: 1 }, { text: '民营企业', value: 2 } ] value是...
  • C语言中枚举变量的用法

    千次阅读 2018-03-29 20:47:16
    枚举类型若定义时不赋初值,那么会默认对第一个元素赋0,后面的元素依次+1也可以在定义时给任意的成员赋初值,未赋初值的使用默认值,即比前一元素大1。如:enum test{a=10,b,c=11,d,e}各个枚举变量的值为:a=10,b=...
  • JAVA枚举类型引用的静态变量

    千次阅读 2015-02-04 18:51:00
    JAVA枚举类型引用的静态变量不会随着静态变量在内存中值改变而改变。
  • 类中枚举变量用到的操作符重载

    千次阅读 2006-06-22 09:40:00
    一个扑克牌,其中成员Suit代表花色(当然只有四种,所以可以用枚举类型),要求程序可对Suit类型赋值(用=操作符),Suit可做自增操作(用++操作符)。代码如下:// OLOperator.cpp : 定义控制台应用程序的入口...
  • 枚举类的使用方法

    万次阅读 多人点赞 2019-06-02 11:50:05
    枚举类型是Java 5新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种(class)类型却又比类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。...
  • 本博客(http://blog.csdn.net/livelylittlefish )贴出作者(三二一@小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正!   1. 宏定义   #define ASPECT_RATIO 1.653 ...该宏定义ASPEC
  • C++之enum枚举量声明、定义、使用与枚举类详解

    万次阅读 多人点赞 2017-02-11 16:51:28
    众所周知,C/C++语言可以使用#define和const创建符号常量,而使用enum工具不仅能够创建...步骤(一)——枚举量的声明和定义 (1)首先,请看下面的语句: enum enumType {Monday, Tuesday, Wednesday, Thursday, Friday,
  • Keil中枚举型(enum)变量的长度大小

    千次阅读 2011-11-15 12:24:41
    今天测试时发现,Keil uVision4对于enum类型的变量,用多少字节存储,是由你为里面枚举常量设定的值决定的。 首先,先说一下,我们可以为枚举常量的值设为负数。并且编译器能够自动识别,是用有符号数存储,还是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 105,862
精华内容 42,344
关键字:

枚举类中定义成员变量