Java面向对象基础知识之枚举
目录
- 一、枚举的定义
- 二、枚举的声明
- 三、枚举的转换
- 四、枚举的方法
- 五、标志枚举(二进制枚举)
- 总结
一、枚举的定义 枚举是一组命名整型常量。枚举类型是使用enum关键字声明的。
【Java面向对象基础知识之枚举】C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。
二、枚举的声明 声明枚举的一般语法:
enum{ enumeration list };
其中,
enum_name
指定枚举的类型名称。enumeration list
是一个用逗号分隔的标识符列表。
enum Day { Sun, Mon, tue, Wed, thu, Fri, Sat };
在编译枚举类型时,会把每个符号转换成类型的一个常量字段很一个int32的公共实例字段,不够后者不能通过代码调用。
因为枚举的符号是一个常量字段,如果在不同的程序集引用,可能会出现一些版本问题,
文章图片
每个枚举都有一个基础类型, 包含
byte
,sbyte
,short
,ushort
,uint
,long
,ulong
, 和int
(最常用,C#默认的类型)三、枚举的转换 枚举转换成整数
Day today = Day.Wed; int dayNumber = (int)today;
枚举转换成字符串
Day today = Day.Wed; string todayStr = today.ToString();
四、枚举的方法 枚举的主要三个方法:
Enum.GetName()
、Enum.GetNames()
、Enum.GetValues()
Day today = Day.Wed; string name = Enum.GetName(typeof(Day), 3); Enum.GetNames(typeof(Day))Enum.GetValues(typeof(Day))
GetName
:获取单个枚举的名称GetNames
:获取所有枚举的名称GetValues
:获取所有枚举的值五、标志枚举(二进制枚举) 定义枚举时,添加Flags特性,之后便可以对这些值执行AND、OR、NOT、XOR按位运算
public enum MyEnum{MyEnum1 = 1, //0x1MyEnum2 = 1 << 1, //0x2MyEnum3 = 1 << 2, //0x4MyEnum4 = 1 << 3, //0x8MyEnum5 = 1 << 4, //0x10MyEnum6 = 1 << 5, //0x20MyEnum7 = 1 << 6 //0x40}
此时可以使用位移运算方便的获取多个枚举的组合变量:
MyEnum myEnum = MyEnum.MyEnum1 | MyEnum.MyEnum2; myEnum |= myEnum | MyEnum.MyEnum3;
或在组合中删除其中一项枚举:
myEnum ^= MyEnum.MyEnum1; myEnum &= ~MyEnum.MyEnum2;
需要判断是否包含某一枚举值时,可以使用以下方法判断:
(curMyEnum & MyEnum.Enum1) > 0
并集&交集^差集
总结 本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用
- jQuery插件