码迷,mamicode.com
首页 > 编程语言 > 详细

Java笔记--枚举&注解

时间:2015-05-31 18:19:22      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

1、自定义枚举类的实现,例:

class Season{
    //1,提供类的属性,声明为rivate final
    private final String name;
    private final String Desc;
    //2,声明为final的属性,在构造器中初始化,构造器为private
    private Season(String name, String desc){
        this.name = name;
        this.Desc = desc;
    }
    //3,通过公共的方法来调用属性
    public String getName() {
        return name;
    }

    public String getDesc() {
        return Desc;
    }
    //4,创建对象,用public static final来修饰
    public static final Season SPRING = new Season("spring", "春天");
    public static final Season SUMMER = new Season("Summer", "夏天");
    public static final Season AUTUMN = new Season("Autumn", "秋天");
    public static final Season WINTER = new Season("winter", "冬天");
    
    @Override
    public String toString() {
        return "Season [name=" + name + ", Desc=" + Desc + "]";
    }
    
}

2、使用enum关键字定义枚举类:

public enum Season {
    SPRING("spring", "春天"),
    SUMMER("Summer", "夏天"),
    AUTUMN("Autumn", "秋天"),
    WINTER("winter", "冬天");
    private final String name;
    private final String desc;
    
    public String getName() {
        return name;
    }
    public String getDesc() {
        return desc;
    }
    
    private Season(String name, String desc){
        this.name = name;
        this.desc = desc;
    }
}

3、枚举类常用方法:

  1)values();

  2)vauueOf(String name);

//1.values()
Season[] seasons = Season.values();
for(int i = 0; i < seasons.length; i++){
    System.out.println(seasons[i]);
}
//2.valueOf(String name):传入的参数必须是枚举类存在的对象名字
//否则报java.lang.IllegalArgumentException的异常
String str = "SPRING";
Season season = Season.valueOf(str);
System.out.println(season);

 4、枚举类也可以实现接口,可以让不同的枚举类对象调用被重写的抽象方法,执行效果不同(让每个对象分别重写方法)。

5、元素据(MetaData),就是注解(Annotation),是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理,通过使用Annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。

6、Annotation可以像修饰符一样被使用,可用于修饰包、类、构造器、方法、成员变量、参数、局部变量的声明、这些信息被保存在Annotation的“name=value”对中。

7、Annotation能被用来为程序元素设置元数据。

8、JDK中的3个基本注解类型:

  1)@Override:限定重写父类方法。该注释只能用于方法;

  2)@Deprecated:用于表示某个程序元素(类、方法等)已过时;

  3)@SuppressWarnings:抑制编译器警告。

9、自定义Annotation:

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

10、JDK的元Annotation用于修饰其他Annotation定义,JDK5.0提供了专门在注解上的注解类型,分别是:

  1)Retention:只能用于修饰一个Annotation定义,用于指定该Annotation可以保留多长时间。@Rentention包含一个RetentionPolicy类型的成员变量,使用                                @Rentention时必须为该value成员变量指定值(RetentionPolicy.SOURCE、RetentionPolicy.CLASS、RetentionPolicy.RUNTIME)

  2)Target:用于修饰Annotation定义,用于指定被修饰的Annotation能用于修饰哪些程序元素,@Target也包含一个名为value的成员变量。

  3)Documented:用于指定被该元Annotation修饰的Annotation类将被javadoc工具提取成文档(定义为Documented的注解必须设置Retention值为RUNTIME)。

  4)Inherited:被它修饰的Annotation将具有继承性,如果某个类使用了被@Inherited修饰的Annotation,则其子类将自动具有该注解(使用较少)。

 

Java笔记--枚举&注解

标签:

原文地址:http://www.cnblogs.com/tengtao93/p/4542198.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!