栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java枚举笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java枚举笔记

枚举 自定义枚举
  1. 构造器私有化,防止直接new,因为season只有固定的四季
  2. 去set方法防止属性被修改
  3. 在类的内部,直接创建固定对象(本文以Season为例)
  4. 可以加上一个final修饰符,static,final一起使用有专门的优化,不需要调用类
class season{
    private String name;
    private String desc;

    public final static season SPRING   = new season("春天","");
    public final static season SUMMER   = new season("夏天","");
    public final static season AUTUMN   = new season("秋天","");
    public final static season WINTER   = new season("冬天","");
    private season(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }

    public String getName() {
        return name;
    }

//    public void setName(String name) {
//        this.name = name;
//    }

    public String getDesc() {
        return desc;
    }

//    public void setDesc(String desc) {
//        this.desc = desc;
//    }
}
使用enum实现枚举类
  1. 使用关键字enum替代class
  2. public final static season SPRING = new season(“春天”,“”);可以使用SPRING(“春天”,“”);,和构造器对应
  3. 如果有多个常量(对象),可以使用‘,’间隔
  4. 如果使用enum实现枚举,要求把常量写在属性前
enum season02 {
    SPRING("spring",""),SUMMER("",""),AUTUMN("",""),WINTER("","");
    //常量写在前边
    private String name;
    private String desc;

    season02(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }

    public String getName() {
        return name;
    }

//    public void setName(String name) {
//        this.name = name;
//    }

    public String getDesc() {
        return desc;
    }

//    public void setDesc(String desc) {
//        this.desc = desc;
//    }

}

反编译来看,两种方法其实是等效的 public final static season SPRING = new season(“春天”,“”)
后者只取决于,有几种编译器

枚举类的常用方法

  1. name返回变量名,和Enum的toString方法效果相同

  2. ordinal返回常量对象的次序,但是次序从零开始,可以来做比较

  3. //values含有定义的所有枚举对象
           Season02[] values = Season02.values();
           for (int i = 0; i < values.length; i++) {
               System.out.println(values[i]);
           }
    
  4. valueof 将字符串转换成枚举对象Season02 autumn01 = Season02.valueOf(“AUTUMN”);

  5. comperTo比较两个枚举对象,实质上是比较两个常量对象的ordinal编号

enum实现接口

enum已经继承了Enum,因为Java单继承的特点,所以enum不能继续继承
但是enum可以实现接口

好了家人们,今天的学习分享到此结束,晚安

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/841407.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号