1,什么是枚举类?
枚举是一种特殊形式的java类
枚举类中声明的每一个枚举值代表美剧尅的一个势力对象 。
枚举类的构造函数必须私有
枚举类也可以实现接口或者继承抽象类
switch语句可以接受枚举类型
若枚举类只有一个枚举值,则可以当做单态设计模式使用
用单态设计模式定义出了一个类
//例如,下面就是单态设计模式,只有一个实例对象
enum A{ //class
A ; //Object
}
2.枚举类怎么实现?
/**
* 一些程序在运行时它需要的数据不能是任意的,
* 而必须是一定范围内的值。
*/
class Grade{
private Grade(){} ;
public static final Grade A = new Grade() ;
public static final Grade B = new Grade() ;
public static final Grade C = new Grade() ;
public static final Grade D = new Grade() ;
public static final Grade E = new Grade() ;
}
我们可以用枚举类代替上面的类
enum Grade{
A,B,C,D,E;
}
3.一个枚举类可以有构造函数,字段和方法
例如,我们在Grade枚举类上扩展
enum Grade{ //class
A("100-90"),B("89-80"),C("79-70"),D("69-60"),E("59-0") ; //Object
private String value ; //封装每一个对象对应的分数
private Grade(String value)
{
this.value = value ;
}
public String getValue()
{
return this.value ;
}
}
然后再测试方法中:
@Test
public void test(){
print(Grade.A) ;
}
public void print(Grade g) //A,B,C,D,E
{
String value = g.getValue() ;
System.out.print(value) ;
}
就可以得到分数值了
4.枚举类中的抽象方法
enum Grade{ // class
A("100-90") {
public String localeValue() {
return "优";
}
},
B("89-80") {
public String localeValue() {
return "良";
}
},
C("79-70") {
public String localeValue() {
return "一般";
}
},
D("69-60") {
public String localeValue() {
return "及格";
}
},
E("59-0") { // Object
public String localeValue() {
return "不及格";
}
};
private String value; // 封装每一个对象对应的分数
private Grade(String value) {
this.value = value;
}
public String getValue() {
return this.value;
}
public abstract String localeValue();//定义抽象方法
}
因为Grade中有抽象方法,所以实例化对象的时候要重写该方法
5.枚举类所含有的方法
因为枚举类是Object的子类,所以有些方法和Object相同
String |
name() 返回此枚举常量的名称,在其枚举声明中对其进行声明。 |
int |
ordinal() 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。 |
static
|
valueOf(Class<T> enumType, String name) 返回带指定名称的指定枚举类型的枚举常量。 |
这三个方法是枚举类的常用方法:
@Test
public void test()
{
System.out.println(Grade.C.name()) ;
System.out.println(Grade.C.ordinal()) ;
String str = "B" ;
Grade f = Grade.valueOf(Grade.class, str) ;
Grade g = Grade.valueOf(str) ;
Grade gs[] = Grade.values() ; //得到所有对象,用一个对象数组保存
for(Grade g1: gs){
System.out.println(g1) ;
}
System.out.println(f) ;
System.out.println(g) ;
}
相关推荐
对枚举的简单实用,进行了演示,在博客中有相关文档进行了枚举详细的讲解
通过Windows API枚举电脑中存在的设备,要到需要的设备进行通信。虽然简单,但是实用。
laravel-enum 一个简单好用的枚举扩展包,帮助你更方便地管理项目中的枚举,支持 Laravel 和 Lumen。社区讨论:介绍laravel-enum 主要用来扩展项目中的常量使用,通过合理的定义常量可以使代码更加规范,更易阅读和...
c#遍历枚举(ENUM)类型的方法,简单实用,适合c#初学者
以下几种方法来模拟enum:(感觉方法一简单实用) 复制代码 代码如下: # way1 class Directions: up = 0 down = 1 left = 2 right =3 print Directions.down # way2 dirUp, dirDown, dirLeft, dirRight =...
共分16章:第1章 初识Java,第2章 初识对象和简单,第3章运算符、表达式和语句,第4章类与对象,第5章子类与继承,第6章,第7章 数组与枚举,第8章 内部类与异常,第9章 常用实用类,第10章 输入、输出流等
虽然简单,但是实用 HDEVINFO hDevInfo; SP_DEVINFO_DATA DeviceInfoData; DWORD i,j; int ret=0; hDevInfo = SetupDiGetClassDevs((LPGUID) &GUID;_DEVCLASS_MOUSE, 0, 0,DIGCF_PRESENT);//DIGCF_PROFILE);// ...
枚举操作公共类(EnumHelper.cs) 身份证操作辅助类(IDCardHelper.cs) 检测字符编码的类(IdentifyEncoding.cs) RGB颜色操作辅助类(MyColors.cs) 日期操作类(MyDateTime.cs) 转换人民币大小金额辅助类(RMBUtil.cs...
枚举操作公共类(EnumHelper.cs) 身份证操作辅助类(IDCardHelper.cs) 检测字符编码的类(IdentifyEncoding.cs) RGB颜色操作辅助类(MyColors.cs) 日期操作类(MyDateTime.cs) 转换人民币大小金额辅助类(RMBUtil.cs...
所提供的方法全部实现了零分配,并且设计简单易用。FastEnum FastEnum是C#/。NET最快的枚举实用工具。 它比.NET Core快得多,也比类似库的Enums.NET快。 提供的方法都实现了零分配,并且设计得像System.Enum一样...
内容索引:VC/C++源码,系统相关,枚举,进程 VC++枚举当前进程的一个小示例,类似代码 已有很多,不过感觉这个挺简单,而且效果不错,比较实用,枚举效果如上图示。
Win ASM32实现的进程遍历,结束等。简单实用。
(SpecialDirectories.cs)简单的Word操作对象(WordCombineUtil.cs)这个类提供了一些实用的方法来转换XML和对XmlConvertor.cs)XML操作类(XmlHelper.cs) ----------Format-------------- 参数验证的通用验证程序。...
一个简单的客户端-服务器后门实用程序,用于在目标计算机上运行命令以枚举系统信息。 这将不断发展以接受更多的命令/功能。 用法 服务器: usage: server.py [-h] --address ADDRESS --port PORT optional ...
6.枚举操作公共类(EnumHelper.cs) 7.身份证操作辅助类(IDCardHelper.cs) 8.检测字符编码的类(IdentifyEncoding.cs) 9.RGB颜色操作辅助类(MyColors.cs) 10.日期操作类(MyDateTime.cs) 11.转换人民币大小金额...
枚举操作公共类(EnumHelper.cs) 身份证操作辅助类(IDCardHelper.cs) 检测字符编码的类(IdentifyEncoding.cs) RGB颜色操作辅助类(MyColors.cs) 日期操作类(MyDateTime.cs) 转换人民币大小金额辅助类...
枚举操作公共类(EnumHelper.cs) 身份证操作辅助类(IDCardHelper.cs) 检测字符编码的类(IdentifyEncoding.cs) RGB颜色操作辅助类(MyColors.cs) 日期操作类(MyDateTime.cs) 转换人民币大小金额辅助类...
枚举操作公共类(EnumHelper.cs) 身份证操作辅助类(IDCardHelper.cs) 检测字符编码的类(IdentifyEncoding.cs) RGB颜色操作辅助类(MyColors.cs) 日期操作类(MyDateTime.cs) 转换人民币大小金额辅助类...
Enumerable 类是接口的包装器,提供典型的枚举操作。 该库的意图是微不足道、显而易见、简单和轻量级。 这是一个使用从 Top Trumps series 1 “Super Cars” 套牌派生的数据集的简短示例。 该集合被过滤以去除最高...
枚举操作公共类(EnumHelper.cs) 身份证操作辅助类(IDCardHelper.cs) 检测字符编码的类(IdentifyEncoding.cs) RGB颜色操作辅助类(MyColors.cs) 日期操作类(MyDateTime.cs) 转换人民币大小金额辅助类...