枚举类

枚举类:一个类若其对象是确定的,并且是可数多个的,那么这个类就是一个枚举类
 * >单例可以看成是枚举类的特殊情况
 * 1.如何自定义枚举类
 * 
 * 2.如何使用enum关键字定义枚举类
 * 
 * >两个方法的使用:values()  valueOf(String obj);
 * 
 * 3.枚举类实现接口,让枚举类的对象分别去实现接口中的抽象方法


【自定义枚举类】
class Season{
//1.提供类的属性,声明为:private final的
private final String seasonName;
private final String seasonDesc;

//2.私有化构造器,并初始化类的属性
private Season(String seasonName,String seasonDesc){
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}


//3.可以提供私有属性的公共的方法进行调用
public String getSeasonName() {
return seasonName;
}


public String getSeasonDesc() {
return seasonDesc;
}
//4.创建枚举类的对象,声明为public static final的
public static final Season SPRING = new Season("春天","春暖花开");
public static final Season SUMMER = new Season("夏天","夏日炎炎");
public static final Season AUTUMN = new Season("秋天","秋高气爽");
public static final Season WINTER = new Season("冬天","寒冬腊月");

@Override
public String toString() {
return "Season [seasonName=" + seasonName + ", seasonDesc="
+ seasonDesc + "]";
}

public void show(){
System.out.println("我是一个季节");
}
}

public class TestSeason1 {
public static void main(String[] args) {
System.out.println(Season.SPRING);
System.out.println(Season.SUMMER.getSeasonName());
Season.AUTUMN.show();
}
}
新特性:【使用enum关键字定义】
interface Info{
void display();
}


enum Season1 implements Info{
//4.创建枚举类的对象,声明为public static final的
SPRING("春天","春暖花开"){
public void display(){
System.out.println("春天在哪里?");
}
},
SUMMER("夏天","夏日炎炎"){
public void display(){
System.out.println("生如夏花");
}
},
AUTUMN("秋天","秋高气爽"){
public void display(){
System.out.println("秋分");
}
},
WINTER("冬天","寒冬腊月"){
public void display(){
System.out.println("冬天里的一把火");
}
};

//1.提供类的属性,声明为:private final的
private final String seasonName;
private final String seasonDesc;

//2.私有化构造器,并初始化类的属性
private Season1(String seasonName,String seasonDesc){
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}


//3.可以提供私有属性的公共的方法进行调用
public String getSeasonName() {
return seasonName;
}


public String getSeasonDesc() {
return seasonDesc;
}

@Override
public String toString() {
return "Season [seasonName=" + seasonName + ", seasonDesc="
+ seasonDesc + "]";
}

public void show(){
System.out.println("我是一个季节");
}


// @Override
// public void display() {
// System.out.println("不管你信不信,反正我是信了");
// }

}

public class TestSeason {
public static void main(String[] args) {
System.out.println(Season1.SPRING);
System.out.println(Season1.SUMMER.getSeasonName());
Season1.AUTUMN.show();
System.out.println();

//1.values():返回枚举类的所有对象构成的数组
Season1[] sea = Season1.values();
for(int i = 0;i < sea.length;i++){
System.out.println(sea[i]);
}

System.out.println();

//2.valueOf(String objName):返回指定对象名的对象
//若没有声明为objName的对象,报java.lang.IllegalArgumentException异常
String str = "WINTER";
Season1 winter = Season1.valueOf(str);
System.out.println(winter);

System.out.println();

Season1.AUTUMN.display();
Season1.SUMMER.display();
Season1.SPRING.display();

}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

痴书先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值