(1)枚举
1.枚举类型有static和final的属性,但是和static和final有基本的区别
2.枚举类的初始化只能由枚举自己定义的常量来进行初始化
package hello;
enum A{//定义一个叫A的枚举类型 有static和final的属性
HELLO,
WROLD;
}
class B{
public A emm;//定义emm为A类型
}
public class Hello{ //创建一个类叫做Hello
public static void main(String[] args) {
B b = new B();
b.emm = A.HELLO;//可以像使用类的静态常量一样使用枚举常量
b.emm = A.WROLD;//对象b只能赋予枚举A的枚举常量
}
}
3.枚举的成员
下例代码中枚举的构造方法传输的值只能通过常量中定义的值进行初始化
package hello;
enum Emm{//枚举类也有构造方法和方法
HELLO(1,2),//常量必须在其他内容之前定义并且以分号
WORLD(3,4),//括号内的值就是构造方法传输的值
EASY(6,7);
private int min;
private int max;
Emm(int min,int max){
this.min=min;
this.max=max;
}
public int getMin() {
return this.min;
}
public int getMax() {
return this.max;
}
}
public class Hello{ //创建一个类叫做Hello
public static void main(String[] args) {
Emm a =Emm.HELLO;//只能在三个常量中选择
//不能使用 Emm a = new Emm();进行对象创建
//同样Emm a = new Emm(Emm.EASY);也不行
System.out.println(a.getMax());//2
}
}
(2)迭代枚举值-利用增强for循环
package hello;
enum A{//定义一个叫A的枚举类型
HELLO,
WROLD;
}
public class Hello{ //创建一个类叫做Hello
public static void main(String[] args) {
for(A a :A.values()) {
System.out.println(a);// HELLO WROLD
}
}
}
(3)在switch中使用枚举
package hello;
class Emm{
enum Data{//类中枚举 该枚举只能在该类中使用
HELLO,
WORLD;
}
Data b;
}
public class Hello{ //创建一个类叫做Hello
public static void main(String[] args) {
Emm a= new Emm();
a.b = Emm.Data.HELLO;
switch(a.b) {
case HELLO://注意枚举成员前不要加枚举类
System.out.println("Hello");
break;
case WORLD:
System.out.println("World");
break;
}
}
}
//Hello