Java 第27天 高级进阶篇 enum 枚举类使用

一、枚举类的使用:入门

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]);
}
}}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值