03枚举和注解

1.枚举

1.自定义枚举类

编写一个季节类,他只有四个季节

传统设计思路,可以随便实现各种没有的季节,不合理,要使用枚举

步骤: //1.将构造器私有化,防止直接new
           //2.去掉set方法,防止属性被修改,只读的
            //3.在season内部,直接创建固定对象
            //4.优化添加final,枚举的大写

public class Enumeration01 {
    public static void main(String[] args) {
        System.out.println(Season.AUTUM);
    }
}
class Season{//自定义枚举
    private String name;
    private String desc;//描述
    public static final Season SPRING= new Season("春天","温暖");
    public static final Season WINTER= new Season("冬天","寒冷");
    public static final Season AUTUM= new Season("秋天","凉爽");
    public static final Season SUMMER= new Season("夏天","热");
    //1.将构造器私有化,防止直接new
    //2.去掉set方法,防止属性被修改,只读的
    //3.在season内部,直接创建固定对象
    //4.优化添加final,枚举的大写
    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;
    }

    @Override
    public String toString() {
        return name+"是"+desc;
    }
}

2.enum枚举类

步骤:

//1.构造器私有化
//2.去掉set方法
//3.class 替换为enum
//4.枚举出对象,枚举对象必须放在枚举类最前面,多个常量对象用逗号隔开
//5.这些对象本质还是static final类型的

如果使用的是无参构造器创建枚举对象,实参列表和小括号可以省略

enum Season2{//自定义枚举,是final类型的类
    //1.构造器私有化
    //2.去掉set方法
    //3.class 替换为enum
    //4.枚举出对象,在最前面,多个常量对象用逗号隔开
    //5.这些对象本质还是static final类型的
    SPRING("春天","温暖"),WINTER("冬天","寒冷"),
    AUTUM;
    private String name;
    private String desc;//描述
    private Season2(){}
    private Season2(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;
    }

    @Override
    public String toString() {
        return name+"是"+desc;
    }
}

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

    @Override
    public String toString() {
        return name+"是"+desc;
    }
}

3.enum类的常用方法

因为枚举类是继承enum类的,有些常用方法

public class EnumMethod {
    public static void main(String[] args) {
        Season2 aut=Season2.AUTUM;
        //1.name()得到枚举对象的名字
        System.out.println(aut.name());
        //2.ordinal()得到枚举对象的次序,从0开始
        System.out.println(aut.ordinal());
        //3.values()得到枚举类的全部对象,返回一个数组
        Season2 []values=Season2.values();
        //增强for
        for(Season2 season2:values){
            System.out.println(season2.name());
        }
        //4.给一个字符串,如果有该枚举对象返回这个枚举对象,没有保错
        Season2 season3=Season2.valueOf("SPRING");
        System.out.println(season3);
        //5.compareTo()比较两个枚举对象的编号
        System.out.println(Season2.SPRING.compareTo(Season2.WINTER));
    }
}

 4.注意

(1).枚举类继承了enum类,不能继承其他类了

(2).通过枚举对象,可以访问枚举类的方法

(3).enum可以实现接口

public class EnumDetail {
    public static void main(String[] args) {
        
        A.Muser.say();
    }
}
enum A implements B{
    Muser;
    public void say(){
        System.out.println("aa");
    }
}
interface B{
    public void say();
}

2.注解

1.@override

重写父类的方法时加这个注解,只能在方法上使用

@target 修饰注解的注解

2.@Deprecated

修饰过时的元素,包括类,方法,接口,包,参数

过时的时不推荐使用

3.@SuppressWarning

all抑制所有警告

可以写在方法上,类上,语句上

4.四种元注解(了解)

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值