枚举和注解

一、枚举类的定义和使用以及常用的两个方法

package com.xijian.java;

public class TestEnum {
	public static void main(String[] args) {
		Season Spring = Season.SPRING;
		System.out.println(Spring);
		//enum类的values()方法,将此类型枚举类中的所有对象返回至一个该类型的一个数组中
		Season[] s1 = Season.values();
		for(int i = 0;i<s1.length;i++) {
			System.out.println(s1[i]);
		}
		//enum类的valueof(String name);要求传入的String类型的为枚举类对象的名字
		//否则报java.lang.IllegalArgumentException异常
		Season Summer = Season.valueOf("SUMMER");
		System.out.println(Summer);
		
		
		
		
	}
}
enum Season{
	SPRING("春天","春暖花开"),
	SUMMER("夏天","夏日炎炎"),
	AUTUMN("秋天","秋高气爽"),
	WINTER("冬天","白雪皑皑");
	private final String seasonName;
	private final String seasonDesc;

	private Season(String seasonName,String seasonDesc) {
		this.seasonName = seasonName;
		this.seasonDesc = seasonDesc;
	}

	public String getSeasonName() {
		return seasonName;
	}
	public String getSeasonDesc() {
		return seasonDesc;
	}
	@Override
	public String toString() {
		return "Season [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]";
	}

}

二、让枚举类实现接口

实现接口的方式与普通类一样,enum name implements interfaceA{}

可以在每个类中的每个枚举类对象声明后加一个代码块 在代码块中实现对抽象方法的重写,可以让每个对象执行的效果不同,相当于让每个对象重写抽象方法。

三注解 Annotation

1)JDK自带的常用注解

@Override:限定重写父类方法,该注解只能用于方法

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

@SuppressWarnings:抑制编译器警告

2)JDK5.0提供了专门在注解上的注解类型,分别是:

@Retention

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


RetentionPolicy.SOURCE: 编译器直接丢弃这种策略的注释
RetentionPolicy.CLASS: 编译器将把注释记录在 class 文件中. 当运行 Java 程序时, JVM 不会保留注解。 这是默认值
RetentionPolicy.RUNTIME:编译器将把注释记录在 class 文件中. 当运行 Java 程序时, JVM 会保留注释. 程序可以通过反射获取该注释

@Target

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

@Documented

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

@Inherited

@Inherited: 被它修饰的 Annotation 将具有继承性.如果某个类使用了被 @Inherited 修饰的 Annotation, 则其子类将自动具有该注解
实际应用中,使用较少

阅读更多
个人分类: 数据结构 JAVASE
上一篇JAVA泛型
下一篇JAVA IO流(一) 概述及节点流
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭