枚举的应用
1.枚举的语法特点
-
枚举是jdk1.5提供的一个特性
-
枚举是一个特殊的类,这个类的对象的数量是有限的。在定义枚举类的同时就已经确定了类对象及类对象的数量。
-
枚举使用
enum
关键字定义
class A{}
enum A{}
在枚举类中的第一行,就需要提供枚举类的对象(名字)
多个对象名之间使用逗号隔开。
最后一个对象可以使用分号,也可以不用。强烈建议使用分号结束
每一个对象都相当于public static final A a ; (编码规范:常量的名字都大写)
enum A{
//public static final A a1 = new A();
a1 , a2 , a3 , a4 ;
}
-
枚举类中也可以有属性,方法和构造方法,其中属性和方法与普通类没有任何区别。
-
构造方法可以是无参,也可以是有参。但必须是private
-
在声明枚举对象时,可以指定调用的构造方法及为构造方法传递的参数。
enum B{
B1, //new B()
B2(), //new B()
B3(10,20), //new B(10,20);
B4(100,200), //new B(100,200);
B5 ;
private B(){}
private B(int i , int j){
this.i = i ;
this.j = j ;
}
int i ;
int j ;
}
-
枚举不能继承
-
枚举中可以定义抽象方法
enum C{
c1(){
public void t1(){
System.out.println("----------------------------");
}
} ,
c2(){
public void t1(){
System.out.println("=============================");
}
} ;
public abstract void t1() ;
}
2.枚举的使用
获得枚举对象
-
B b = B.B1;
-
枚举对象可以作为switch的判断条件
public void test(B b){
switch(b){
case B1:break ;
case B2:break ;
case B3:break ;
case B4:break ;
}
}
使用枚举对象
-
就是调用枚举对象的属性和方法。 包括两部分
-
定义枚举时,我们根据需求自定义的属性和方法
-
所有的枚举类都默认继承Enum父类。 类似于所有的注解都继承Annotation。 所以枚举 对象中还包含一些Enum父类中提供的方法
-
e.getName();//获得枚举对象的名字,也就是变量名
e.ordinal();//获得当前枚举对象在所有枚举对象列表中的位置(下标 0开始)
e.compareTo(Enum e1); //默认比较两个枚举对象的索引位置
Enum.valueOf(B.class,"B2"); //获得指定名字的枚举对象
B.values(); //获得B这个枚举类的所有枚举对象,以数组的形式返回
原文地址:https://blog.csdn.net/lzp122390/article/details/143066655
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!