java枚举类
格式
1、枚举常量定义
枚举常量的定义必须写在在枚举类的开头,
每个枚举常量命名格式一般为大写字母,多个单词用 ‘_’ 分割,
可以通过构造器的方式为枚举常量设置属性,在每个枚举常量后面用括号加上属性的值,格式必须与构造器的格式一致
//定义枚举常量,必须写在枚举类的开头
APPLE(1, "苹果"), BANANA(2, "香蕉"), PEAR(3, "梨"), ORANGE(4, "橘子");
...
//构造器,必须与定义的格式一致
FruitEnum(Integer id, String name) {
this.id = id;
this.name = name;
}
...
2、属性定义
可以为枚举常量设置属性,一般必须含有构造器的参数
...
//枚举的属性,对应每个枚举元素的各个属性
private final Integer id;
private final String name;
//构造器,必须与定义的格式一致
FruitEnum(Integer id, String name) {
this.id = id;
this.name = name;
}
...
3、构造器
与实体类的构造方法类似
...
//构造器,必须与定义的格式一致
FruitEnum(Integer id, String name) {
this.id = id;
this.name = name;
}
...
4、自定义方法
自定义操作方法,可以为属性设置get方法,也可以设置其他的自定义方法
...
//自定义方法,获取具体某个属性
public Integer getId() {
return id;
}
public String getName() {
return name;
}
//自定义方法
public String eat() {
return "吃了一个" + this.name;
}
@Override
public String toString() {
return "FruitEnum{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
枚举类完整代码
package com.hsh.maoduo.enums;
import java.util.Arrays;
public enum FruitEnum {
//定义枚举常量,必须写在枚举类的开头
APPLE(1, "苹果"), BANANA(2, "香蕉"), PEAR(3, "梨"), ORANGE(4, "橘子");
//枚举的属性,对应每个枚举元素的各个属性
private final Integer id;
private final String name;
//构造器,必须与定义的格式一致
FruitEnum(Integer id, String name) {
this.id = id;
this.name = name;
}
//自定义方法,获取具体某个属性
public Integer getId() {
return id;
}
public String getName() {
return name;
}
//自定义方法
public String eat() {
return "吃了一个" + this.name;
}
@Override
public String toString() {
return "FruitEnum{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public static void main(String[] args) {
System.out.println("获得所有枚举常量↓↓↓↓↓↓↓↓↓↓↓↓");
//枚举类自带的values(),获得所有的枚举常量,返回FruitEnum[]
System.out.println(Arrays.toString(FruitEnum.values()));
//不建议使用某个枚举常量调用values()方法,效果与整个枚举类调用values()方法效果一致
System.out.println(Arrays.toString(FruitEnum.APPLE.values()));
System.out.println("获得指定枚举常量↓↓↓↓↓↓↓↓↓↓↓↓");
//获得指定枚举常量
System.out.println(FruitEnum.APPLE);
//获枚举类自带的valueOf(),获得指定的枚举常量,返回FruitEnum
System.out.println(FruitEnum.valueOf("PEAR"));
//不建议使用某个枚举常量调用valueOf()方法,效果与整个枚举类调用valueOf()方法效果一致
System.out.println(FruitEnum.APPLE.valueOf("PEAR"));
System.out.println("获得指定枚举常量的具体属性的值↓↓↓↓↓↓↓↓↓↓↓↓");
System.out.println(FruitEnum.APPLE.getId());
System.out.println(FruitEnum.APPLE.getName());
System.out.println("调用指定枚举常量的自定义方法↓↓↓↓↓↓↓↓↓↓↓↓");
System.out.println(FruitEnum.APPLE.eat());
}
}