枚举类入门说明:
代码示例1:
public class TestSeason { public static void main(String[] args) { Season spring = Season.SPRING; System.out.println(spring); spring.show(); System.out.println(spring.getSeasonName()); } } //枚举类 class Season { //1.提供类的属性,声明为private final private final String seasonName; private final String seasonDesc; //2.声明为final的属性,在构造器中初始化。 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("Spring", "春暖花开"); public static final Season SUMMER = new Season("Summer", "夏日炎炎"); public static final Season FALL = new Season("Fall", "秋高气爽"); public static final Season WINTER = new Season("Winter", "白雪皑皑"); @Override public String toString() { return "Season{" + "seasonName='" + seasonName + '\'' + ", seasonDesc='" + seasonDesc + '\'' + '}'; } public void show() { System.out.println("这是一个季节"); } }
结果:
Season{seasonName='Spring', seasonDesc='春暖花开'}
这是一个季节
Spring
代码示例2:
/* * 一、枚举类 * 1.如何自定义枚举类 * 2.如何使用enum关键字定义枚举类 * > 常用方法:value() valueOf(String name) * > 如何让枚举类实现接口:可以让不同的枚举类的对象调用被重写的抽象方法,执行的效果不同。(相当于让每个对象重写抽象方法) * */ public class TestSeason1 { public static void main(String[] args) { Season1 spring = Season1.SPRING; System.out.println(spring); spring.show(); System.out.println(spring.getSeasonName()); System.out.println(); //1.value() Season1[] seasons = Season1.values(); for (Season1 season : seasons) { System.out.println(season); } System.out.println(); //2.valueOf(String name):要求传入的形参name是枚举类对象的名字。 //否则,报java.lang.IllegalArgumentException异常 String str = "WINTER"; Season1 sea = Season1.valueOf(str); System.out.println(sea); sea.show(); System.out.println(); Thread.State[] states = Thread.State.values(); for (int i = 0; i < states.length; i++) { System.out.println(states[i]); } } } interface Info{ void show(); } //枚举类 enum Season1 implements Info{ SPRING("Spring", "春暖花开"){ @Override public void show() { System.out.println("春天在哪里?"); } }, SUMMER("Summer", "夏日炎炎") { @Override public void show() { System.out.println("生如夏花"); } }, FALL("Fall", "秋高气爽") { @Override public void show() { System.out.println("秋天是用来分手的季节"); } }, WINTER("Winter", "白雪皑皑") { @Override public void show() { System.out.println("冬天里的一把火"); } }; private final String seasonName; private final String seasonDesc; private Season1(String seasonName, String seasonDesc) { this.seasonName = seasonName; this.seasonDesc = seasonDesc; } public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } @Override public String toString() { return "Season{" + "seasonName='" + seasonName + '\'' + ", seasonDesc='" + seasonDesc + '\'' + '}'; } // @Override // public void show() { // System.out.println("这是一个季节"); // } }
结果:
Season{seasonName='Spring', seasonDesc='春暖花开'}
春天在哪里?
SpringSeason{seasonName='Spring', seasonDesc='春暖花开'}
Season{seasonName='Summer', seasonDesc='夏日炎炎'}
Season{seasonName='Fall', seasonDesc='秋高气爽'}
Season{seasonName='Winter', seasonDesc='白雪皑皑'}扫描二维码关注公众号,回复: 5794972 查看本文章Season{seasonName='Winter', seasonDesc='白雪皑皑'}
冬天里的一把火NEW
RUNNABLE
BLOCKED
WAITING
TIMED_WAITING
TERMINATED