Java三大特性之枚举、注解

1. 枚举类型

  • 它只是对一种类型的包装:使用enum关键字定义的枚举类本质上就相当于一个Class定义的类,继承了java.lang.Enum父类。
    enum与Enum区别: enum是一个关键字,使用enum定义的枚举类本质上就相对于一个类继承了Enum这个抽象类而已。

  • 枚举成员默认是public final static,即常量所以枚举类中的枚举值全部大写

  • 枚举类构造方法的访问修饰符只能为private,默认为private

enum Color {
    RAD("红色"), BLUE("蓝色");

    private String title;

    //方法私有
    private Color(String title) {
        this.title = title;
    }

    @Override
    public String toString() {
        return this.title;
    }
}

public class Enum2 {
    public static void main(String[] args) {
        System.out.println(Color.BLUE);//蓝色
    }
}

1.构造方法protected Enum(String name, int ordinal)
2.取得枚举名字public final String name()
3.取得枚举序号public final int ordinal()

/*

**/
enum Color1 {
    BLUE, ODE, BLACK;
}

public class EnumTest {

    public static void main(String[] args) {

        //ordinal()返回序号,name()返回具体内容
        //1.System.out.println(Color1.ODE.ordinal()+"="+Color1.ODE.name());

        //2.Color1.values()返回一个数组
        for (Color1 temp : Color1.values()) {
            System.out.println(temp.ordinal() + "=" + temp.name());
        }
}
  • enum使用switch语句
enum Sex {
    MALE, FEMALE;
}

public class Enum1 {
    public static void main(String[] args) {
        switch (Sex.MALE) {
            case MALE:
                System.out.println("男人");
                break;
            case FEMALE:
                System.out.println("女人");
                break;
        }
    }
}
//男人
  • 枚举实现接口
interface IColor {
   String getColor();
}

enum Color2 implements IColor {
    RED("红"),
    BLUE("蓝");
    private String title;

    private Color2(String title) {
        this.title = title;
    }

    @Override
    public String toString() {
        return super.toString() + title;
    }

    @Override
    public String getColor() {
        return title;
    }
}

public class IEnum {
    public static void main(String[] args) {
        Color2 col=Color2.BLUE;
        //默认调用toString
        System.out.println(col);
        System.out.println(col.getColor());
    }
}
//BLUE蓝
//蓝

2.注解类型

并不是说写了注解以后就可以不使用配置文件了,只是现在使用的配置文件少了
1、JDK提供的三个内置标准注解:
(1)@Override,覆写,标记重写方法(签名一致);
(2)@Deprecated,声明过期,不是删除,可标记各种程序实体
(3)@SuppressWarnings,压制警告,当调用了某些操作可能产生问题的时候就会出现警告进行,但是警告信息并不是错,可标记各种程序实体
2、JDK提供的四个元注解:
(1)@Target,表示该注解用于什么地方
(2)@Retention,表示该注解保存的位置
(3)@Documented,表示将该注解保存在Javacode中
(4)@Inherited,表示允许子类继承父类中的注解

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值