枚举类:一个类若其对象是确定的,并且是可数多个的,那么这个类就是一个枚举类
* >单例可以看成是枚举类的特殊情况
* 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();
}
}
枚举类
最新推荐文章于 2023-12-25 18:10:27 发布