5.java 枚举类
方式一
// 自定义枚举类 public class SessonTest { /* *枚举类的使用 * 1.枚举类的理解,类的对象只有有限个,确定的,我们称此类为枚举类 * 2.当需要定义一组常量是,强烈建议使用枚举类 * 3.如果枚举类中只有一个对象,则可以作为单例模式的实例方式 * */ public static void main(String[] args) { // System.out.println(Sesson.SPRING); System.out.println(Sesson.SPRING.getSessonDesc()); } } // 枚举类 class Sesson{ // 1.声明Season对象的属性,用private final 修饰 private final String sessonName; private final String sessonDesc; // 2.私有化类的构造器 private Sesson(String sessonName,String sessonDesc){ this.sessonDesc =sessonDesc; this.sessonName = sessonName; } //3. 提供当前枚举类的多个对象 public static final Sesson SPRING=new Sesson("春天","春暖花开"); public static final Sesson SUMMER=new Sesson("夏天","夏日炎炎"); public static final Sesson AUTUMN=new Sesson("秋天","秋高气爽"); public static final Sesson WINTER=new Sesson("冬天","冰天雪地"); // 获取枚举类对象的属性 public String getSessonDesc() { return sessonDesc; } public String getSessonName() { return sessonName; } // 提供toString () public String toString(){ return "Sesson["+"sessonName="+sessonName+"sessonDesc="+sessonDesc+"]"; } }
方式二:使用enum 实现枚举类
import sun.applet.Main; public class TestEnum { public static void main(String[] args) { System.out.println(Sesson1.class.getSuperclass());//查看其父类 System.out.println(Sesson1.AUTUMN); System.out.println(Sesson1.AUTUMN.getSessonName()); // values() 获取枚举类中全部的常量对象 Sesson1[] values = Sesson1.values(); for(int i=0;i<values.length;i++){ System.out.println(values[i].getSessonName()); } //valuesOf(String name) Sesson1 spring = Sesson1.valueOf("SPRING"); System.out.println(spring); } } // 使用enum 关键字构建 枚举类,默认继承 enum Sesson1{ //提供当前枚举类对象,多个对象之间用, 隔开,最后一个用;隔开 SPRING("春天","春暖花开"), SUMMER("夏天","夏日炎炎"), AUTUMN("秋天","秋高气爽"), WINTER("冬天","冰天雪地"); private final String sessonName; private final String sessonDesc; // 2.私有化类的构造器 private Sesson1(String sessonName,String sessonDesc){ this.sessonDesc =sessonDesc; this.sessonName = sessonName; } //3. 提供当前枚举类的多个对象 // 获取枚举类对象的属性 public String getSessonDesc() { return sessonDesc; } public String getSessonName() { return sessonName; } // 提供toString () public String toString(){ return "Sesson["+"sessonName="+sessonName+"sessonDesc="+sessonDesc+"]"; } }
方式三 :enum 实现接口的枚举类
1. 各对象实现同一功能接口时:
import sun.applet.Main; public class TestEnum { public static void main(String[] args) { System.out.println(Sesson1.class.getSuperclass());//查看其父类 System.out.println(Sesson1.AUTUMN); System.out.println(Sesson1.AUTUMN.getSessonName()); // values() 获取枚举类中全部的常量对象 Sesson1[] values = Sesson1.values(); for(int i=0;i<values.length;i++){ System.out.println(values[i].getSessonName()); } //valuesOf(String name) Sesson1 spring = Sesson1.valueOf("SPRING"); System.out.println(spring); // spring.show();//这是一个季节 } } interface Info{ void show(); } // 使用enum 关键字构建 枚举类,默认继承 enum Sesson1 implements Info{ //提供当前枚举类对象,多个对象之间用, 隔开,最后一个用;隔开 SPRING("春天","春暖花开"), SUMMER("夏天","夏日炎炎"), AUTUMN("秋天","秋高气爽"), WINTER("冬天","冰天雪地"); private final String sessonName; private final String sessonDesc; // 2.私有化类的构造器 private Sesson1(String sessonName,String sessonDesc){ this.sessonDesc =sessonDesc; this.sessonName = sessonName; } //3. 提供当前枚举类的多个对象 // 获取枚举类对象的属性 public String getSessonDesc() { return sessonDesc; } public String getSessonName() { return sessonName; } // 提供toString () public String toString(){ return "Sesson["+"sessonName="+sessonName+"sessonDesc="+sessonDesc+"]"; }
@Override public void show(){ System.out.println("这是一个季节"); } }
2. 各对象用实现不同功能接口时:
import sun.applet.Main; public class TestEnum { public static void main(String[] args) { System.out.println(Sesson1.class.getSuperclass());//查看其父类 System.out.println(Sesson1.AUTUMN); System.out.println(Sesson1.AUTUMN.getSessonName()); // values() 获取枚举类中全部的常量对象 Sesson1[] values = Sesson1.values(); for(int i=0;i<values.length;i++){ System.out.println(values[i].getSessonName()); values[i].show(); } //valuesOf(String name) Sesson1 spring = Sesson1.valueOf("SPRING"); System.out.println(spring); // spring.show();//这是一个季节 } } interface Info{ void show(); } // 使用enum 关键字构建 枚举类,默认继承 enum Sesson1 implements Info{ //提供当前枚举类对象,多个对象之间用, 隔开,最后一个用;隔开 SPRING("春天","春暖花开"){ @Override public void show () { System.out.println("春天在哪里"); } }, SUMMER("夏天","夏日炎炎"){ @Override public void show () { System.out.println("夏天在哪里"); } }, AUTUMN("秋天","秋高气爽"){ @Override public void show () { System.out.println("秋天在哪里"); } }, WINTER("冬天","冰天雪地"){ @Override public void show () { System.out.println("冬天在哪里"); } }; private final String sessonName; private final String sessonDesc; // 2.私有化类的构造器 private Sesson1(String sessonName,String sessonDesc){ this.sessonDesc =sessonDesc; this.sessonName = sessonName; } //3. 提供当前枚举类的多个对象 // 获取枚举类对象的属性 public String getSessonDesc() { return sessonDesc; } public String getSessonName() { return sessonName; } // 提供toString () public String toString(){ return "Sesson["+"sessonName="+sessonName+"sessonDesc="+sessonDesc+"]"; } // public void show(){ // System.out.println("这是一个季节"); // } }
有疑问可以加wx:18179641802,进行探讨