Java枚举类的学习

复制代码
package java1;
/**
 * @author 高槐玉
 * #Description:
 * 枚举类的使用
 * 1,枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类
 * 2.当需要定义一姐常量时,强烈建议使用枚举类
 * 3.如果枚举类中只有一个对像,则可以作为单例模式的实现方式。
 * 二、如何定义枚举类
 * 方式-:jdk5.0之前,自定义枚举类
 * 方式二:jdk5,0,可以使用enum关键字定义枚举类
 * #Date: 2022/10/12/20点55分
 * #Shangguigu:497集
 */
class Enumerate{
    //声明Season对象的属性:private final修饰
    private final String Name;
    private final String Desc;

    //私有化类的构造器,并给对象属性赋值
    private Enumerate(String name,String desc){
        this.Name = name;
        this.Desc = desc;
    }

    //提供当前枚举类的多个对象:public static final的
    public static final Enumerate SPRING = new Enumerate("春天","万物复苏");
    public final static Enumerate AUTUMN = new Enumerate("秋天","秋高气爽");
    public static Enumerate SUMMER = new Enumerate("夏天","烈日炎炎");
    public final static Enumerate WINTER = new Enumerate("冬天","银装素裹");
    
    //其他诉求,获取枚举类对象的属性
    public String getName() {
        return Name;
    }

    public String getDesc() {
        return Desc;
    }
//没有final修饰就可以改
    public static Enumerate getSUMMER() {
        return SUMMER;
    }

    //重写toString方法才可以显示出来,不然打印的就是地址值
    public String toString(){
        return "季节:" + Name + ",特征:" + Desc;
    }
}
public class SeasonTest {
    public static void main(String[] args) {
        System.out.println(Enumerate.SPRING);
        System.out.println(Enumerate.AUTUMN);
        System.out.println(Enumerate.SUMMER);
        System.out.println(Enumerate.WINTER);
    }
}
复制代码

 这是JDK5.0的自定义枚举类,下面列举JDK8的新的枚举类

复制代码
package java1;
/**
 * @author 高槐玉
 * #Description 使用enum关键字定义枚举类,说明:定义的枚举类默认继承于java.lang.Enum类
 * #Date: 2022/10/12/21点30分
 * #Shangguigu:500集
 */

public class SeasonTest2 {
    public static void main(String[] args) {
        Season2 s2 = Season2.AUTOMN;
        System.out.println(s2);
        System.out.println(Season2.class.getSuperclass());
    }
}
//使用enum关键字定义枚举类
enum Season2{
    //提供当前枚举类的对象,多个对象之间用","隔开,末尾对象用";"结束
    SPRING("春天!","春暖花开!"),
    SOMMER("夏天!","酷暑难耐!"),
    AUTOMN("秋天!","晚装红遍!"),
    WINTER("冬天!","白雪皑皑!");
    //声明Season对象的属性:private final修饰
    private final String Name;
    private final String Desc;

    //私有化类的构造器,并给对象属性赋值
    private Season2(String name,String desc){
        this.Name = name;
        this.Desc = desc;
    }

    public String toString(){
        return "季节:" + Name + ",特征:" + Desc;
    }

}
复制代码

 

posted @   高槐玉在隐身  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示