Enum枚举类使用
public class test {
public static void main(String[] args){
//values()返回枚举类型的对象数组 //object1
MyEnum2[] enum2s = MyEnum2.values(); //object2
for (int i = 0; i < enum2s.length; i++) { //object3
System.out.println(enum2s[i]); //object4
}
//valueOf(String str):可以把一个字符串转为对应的枚举类对象
System.out.println(MyEnum2.valueOf("object2"));//object2
//toString():返回当前枚举类对象常量的名称
System.out.println(MyEnum2.object3.toString());//object3
}
}
//自定义枚举类
class MyEnum1{
//1、声明私有的final的MyEnum属性
private final String property1;
private final String property2;
//2、私有化构造器
private MyEnum1(String property1, String property2) {
this.property1 = property1;
this.property2 = property2;
}
//3、提供当前枚举类的多个对象
public static final MyEnum1 object1 = new MyEnum1("object1","1");
public static final MyEnum1 object2 = new MyEnum1("object2","2");
public static final MyEnum1 object3 = new MyEnum1("object3","3");
public static final MyEnum1 object4 = new MyEnum1("object4","4");
//4、其他诉求:获取枚举类属性
public String getProperty1() {
return property1;
}
public String getProperty2() {
return property2;
}
//4、其他诉求:toString
@Override
public String toString() {
return "MyEnum{" +
"property1='" + property1 + '\'' +
", property2='" + property2 + '\'' +
'}';
}
}
//使用Enum关键字枚举类
enum MyEnum2{
object1,
object2,
object3,
object4;
}
interface Info{
void show();
}
//使用Enum关键字枚举类实现接口
enum MyEnum3 implements Info{
//1、提供当前枚举类的多个对象
object1 ("object1","1"){
//情况一:可以分别实现不一样的
@Override
public void show() {
System.out.println("可以分别实现不一样的");
}
},
object2 ("object2","2"),
object3 ("object3","3"),
object4 ("object4","4");
//2、声明私有的final的MyEnum属性
private final String property1;
private final String property2;
//3、私有化构造器
private MyEnum3(String property1, String property2) {
this.property1 = property1;
this.property2 = property2;
}
//4、其他诉求:获取枚举类属性
public String getProperty1() {
return property1;
}
public String getProperty2() {
return property2;
}
//情况二:每个枚举对象都会调用这个方法
@Override
public void show() {
System.out.println("实现接口后的show方法");
}
}