一、枚举类的使用:入门
1、类的对象只有有限个,确定的。
2、当需要定义一组常量时,强烈建议使用枚举类。
3、 枚举类的使用是在 如果你有 确定的一组常量时使用
二、自定义枚举类 注意点:
1、枚举类量要大写。
2、提供当前枚举类的对象,多个枚举类对象之间要用逗号“,”隔开,末尾对象用封号结束。
例子: JDK8 以前的使用方法
public class SeasonTest {
public static void main(String[] args) {
Season season = Season.AUTUMN;
System.out.println(season);
}
}
enum Season{
SPRING (“春天”,“春暖花开”),
SUMMER(“夏天”,“夏日炎炎”),
AUTUMN(“秋天”,“秋高气爽”),
winter(“冬天”,“冰天雪地”);
private final String Season;
private final String SeasonDesc;
private Season(String season, String seasonDesc) {
this.Season = season;
this.SeasonDesc = seasonDesc;
}
public String getSeason() {
return Season;
}
public String getSeasonDesc() {
return SeasonDesc;
}
@Override
public String toString() {
return “Season{” +
“Season=’” + Season + ‘’’ +
“, SeasonDesc=’” + SeasonDesc + ‘’’ +
‘}’;
}
}
三、自定义枚举类使用注意点:
JDK 8 的标准使用方法:
1、先创建属性
2、使用小写的enum 关键字进行定义此类,把get 、toString方法放在此类中。
3、把使用 enum 定义的类放到最开头
四、具体举例如下:
package Com.bigDataWork_IO;
import jdk.internal.org.objectweb.asm.tree.analysis.Value;
enum fruit {
Mango(“芒果”,“芒果和菠萝是黄色的。”),
apple(“苹果”,“平平安安”),
banana(“香蕉”,“香蕉除了果皮之外,主要是果肉。”),
grapes(“葡萄”,“葡萄快熟了,得上紧准备收摘了。”),
pear(“梨子”,“我唯一一次生病是因为吃了未熟的梨。”),
peach(“桃子”,“j.桃红色的;粉红色的-今年桃子丰收在望。”);
private final String fruitName;
private final String fruitDesc;
fruit(String fruitName, String fruitDesc) {
this.fruitName = fruitName;
this.fruitDesc = fruitDesc;
}
public String getFruitName() {
return fruitName;
}
public String getFruitDesc() {
return fruitDesc;
}
@Override
public String toString() {
return “fruit{” +
“fruitName=’” + fruitName + ‘’’ +
“, fruitDesc=’” + fruitDesc + ‘’’ +
‘}’;
}
}
- 测试类
public class fruitTest {
public static void main(String[] args) {
fruit fru = fruit.grapes;
System.out.println(fru);
System.out.println("----------- ");
fruit[] values = fru.values();
for (int i=0;i< values.length;i++){
System.out.println(values[i]);
}
}
}
五、常用的方法如下:
举例二:另类使用方法
- 下面这个括号是先实现的接口,然后再逗号后面加括号实现的。
*/
interface ZQQ{
void eat();
}
enum fruit2 implements ZQQ {
Mango(“芒果”,“芒果和菠萝是黄色的。”){
@Override
public void eat() {
System.out.println(“全家一起吃才是最好的”);
}
},
apple(“苹果”,“平平安安”) {
@Override
public void eat() {
System.out.println(“一家人平平安安”);
}
},
banana(“香蕉”,“香蕉除了果皮之外,主要是果肉。”) {
@Override
public void eat() {
System.out.println(“爸爸喜欢吃”);
}
},
grapes(“葡萄”,“葡萄快熟了,得上紧准备收摘了。”) {
@Override
public void eat() {
System.out.println(“妈妈细化吃”);
}
},
pear(“梨子”,“我唯一一次生病是因为吃了未熟的梨。”) {
@Override
public void eat() {
System.out.println(“给大家一起吃吃把”);
}
},
peach(“桃子”,“j.桃红色的;粉红色的-今年桃子丰收在望。”) {
@Override
public void eat() {
System.out.println(“小年喜欢吃”);
}
};
private final String fruitName;
private final String fruitDesc;
fruit2(String fruitName, String fruitDesc) {
this.fruitName = fruitName;
this.fruitDesc = fruitDesc;
}
public String getFruitName() {
return fruitName;
}
public String getFruitDesc() {
return fruitDesc;
}
@Override
public String toString() {
return “fruit2{” +
“fruitName=’” + fruitName + ‘’’ +
“, fruitDesc=’” + fruitDesc + ‘’’ +
‘}’;
}
}
class test2{
public static void main(String[] args) {
fruit2 ft = fruit2.apple;
System.out.println(ft);
ft.eat();
fruit2 ff = fruit2.valueOf(“grapes”);
System.out.println(ff);
// 要使用数组的方式遍历出所有的值
fruit2[] values = fruit2.values();
for (int i = 0; i <values.length ; i++) {
System.out.println(values[i]);
}
}}