java5.0新增的
需要一组常量,类的对象有限个,确定的.
自定义枚举类
public class Deme03 {
public static void main(String[] args) {
Gender man = Gender.Man;
System.out.println(man.getValue()); //男
}
}
//自定义枚举类
class Gender {
//声明private final修饰
private final String GENDERVALUE;
//私有化构造器,并给对象属性赋值
private Gender(String gendervalue) {
this.GENDERVALUE = gendervalue;
}
//提供枚举的对象
public static final Gender Man = new Gender("男");
public static final Gender Woman = new Gender("女");
public String getValue() {
return GENDERVALUE;
}
}
使用enum关键字创建枚举类(默认继承Enum类)
enum Gender {
//简写了
Man("男"), Woman("女");
private final String GENDERVALUE;
private Gender(String gendervalue) {
this.GENDERVALUE = gendervalue;
}
public String getValue() {
return GENDERVALUE;
}
}
values(); 返回枚举类型的对象数组,遍历所有的枚举值
valueof(String str); 根据str ,返回枚举类中str的对象,没有找到枚举类对象抛出异常
enum类的实现抽象方法,可以让每个对象都去重写
注解:
代码里面的特殊标记
编译时警示格式检查
- @Override:重写父类方法,注解只能用于方法
- @Deprecated:表示类或者方法过时, 存在更好的选择,结构危险
- @SuppressWarnings:抑制编译器警告
自定义注解
public @interface 名字{
//定义成员,默认使用value表示
String value() default “hello” ;
}
可以指定成员默认值,使用default定义
没有成员表示标识作用
注解有成员,在使用注解是,需要指明成员的值
自定义注解必须配上注解信息处理流程(使用反射)才有意义
jdk提供的元注解
对现有的注解进行解释说明
@Retention: 用于修饰一个 Annotation 定义, 指定该 Annotation 的生命周期
- RetentionPolicy.SOURCE:在源文件中有效(即源文件保留),编译器直接丢弃这种策略的 注释
- RetentionPolicy.CLASS:在class文件中有效(即class保留) , 当运行 Java 程序时, JVM 不会保留注解。
- 这是默认值 RetentionPolicy.RUNTIME:在运行时有效(即运行时保留),当运行 Java 程序时, JVM 会 保留注释。程序可以通过反射获取该注释。
@Target: 用于修饰 Annotation 定义, 用于指定被修饰的 Annotation 能用于 修饰哪些程序元素。
- CONSTRUCTOR 描述构造器
- FIELD 描述属性
- LOCAL_VARIABLE 描述局部变量
- METHOD 描述方法
- PACKAGE 描述包
- PARAMETER 描述参数
- TYPE 描述类,接口注解类型或者enum声明
@Documented: 用于指定被该元 Annotation 修饰的 Annotation 类将被 javadoc 工具提取成文档。默认情况下,javadoc是不包括注解的。 定义为Documented的注解必须设置Retention值为RUNTIME。