您的位置:首页 > 其它

(七)枚举 & 注解

2017-04-09 10:58 134 查看

一、枚举类(对象的个数确定):

枚举类可以使用在switch case语句中

1.1 自定义枚举类:

//Step1:私有化不可更改属性
private final String seasonName;
private final String seasonDesc;
//Step2:私有化构造器,构造器内初始化属性,初始化后不可被更改
private Season(String seasonName, String seasonDesc) {
super();
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
//Step3:枚举出几个静态不可更改的对象
//记住这条语句即可
public static final Season SPRING = new Season("spring", "春暖花开");
public static final Season SUMMER = new Season("summer", "夏日炎炎");
...


1.2 enum关键字定义枚举类

常用方法:

Season.valuses(),返回所有枚举类对象

valueOf(String name):name为枚举类对象的名,如不是,产生异常:IllegalArgumentException

实现接口:

让类实现此接口,类的对象共享此重写方法。

可以让不同枚举类的对象调用被重写的抽样方法,执行的效果不同。

写法:

enum Season{
//放首位,Java自动调用构造器创建对象
SPRING("spring", "春暖花开"){
//枚举的类可以重写通用方法。
//SPRING对象所对应的重写info()方法
public void info(){
System.out.println("这是一个春天的好日子");
}
},
SUMMER("summer", "夏日炎炎"),
AUTUMN("autumn", "秋高气爽"),
WINTER("winter", "白雪皑皑");

//其他和自定义枚举类相同(私有化属性和构造器)
private final String seasonName;
private final String seasonDesc;
private Season(String seasonName, String seasonDesc) {
super();
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}

//枚举类的通用方法
public void info(){
System.print.out("Is a enum class.");
}
}


1.3 枚举类的常用方法

int compareTo(E o)
: 比较此枚举与指定对象的顺序。

Class<E> getDeclaringClass()
:返回与此枚举常量的枚举类型相对应的 Class 对象。

String name()
: 返回此枚举常量的名称,在其枚举声明中对其进行声明。

int ordinal()
: 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。

String toString()
: 返回枚举常量的名称,它包含在声明中。

static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
: 返回带指定名称的指定枚举类型的枚举常量。

二、注解:

2.1 三个基本注解:

@Override
: 重写父类方法

@Deprecated
: 表示某个程序元素已过时

@SuppressWarnings
: 抑制编译器警告

2.2 如何自定义注解:

仿照@SuppressWarning为例来写

public @interface MyAnnotation{
String value() default "hello";
}


2.3 元注解

Retention:注解保留时间(枚举类)

RetentionPolicy.SOURCE

RetentionPolicy.CLASS

RetentionPolicy.RUNTIME

Target:表明注解可以修饰哪些结构

Documented:指定该Annotation类被javadoc工具保留

Inherited:表明该注解有继承性
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  enum