一.枚举类和注解的整体框架
1.枚举类框架
2.注解框架
3.枚举类整体知识
/*
1.枚举类的第一种定义
定义私有化属性和私有化构造器
提供静态常量对象
2.enum定义枚举类
定义私有化属性和私有化构造器
直接提供对象即可
3.enum常用方法
values返回枚举类对象的数组
4.枚举类实现接口
枚举类实现接口可以让每一个对象都有独立的方法
*/
4.注解整体知识
/*
1.注解的作用:
代码中的特殊标记,可以被后期的反射来读取
2.注解的类型:
系统定义注解:@Overide 校验重载方法 @Deprecated标注该方法过时 @SuppressWarnings编译时抑制警告(也不是警告所有的编译错误)
自定义注解:提供String value()即可,通过反射读取注解
3.元注解(注解的注解)
Retention:生命周期
Target:表明注解能修饰的元素
Documented:javadoc后会保留
Inheriterd:子类自动拥有该注解
4.JDK8的新特性
可重复注解:即原来重复注解需要使用value数组,现在可以直接传入
类型注解:表明该注解可以使用在任何类型的注解中
*/
二.代码
1.枚举类
import org.junit.Test;
public class Test1 {
@Test
public void test1(){
Weather a = Weather.spring;
Weather b = Weather.summer;
System.out.println(a);//得到春天
Love a1 = Love.Love1;
Love a2 = Love.Love2;
System.out.println(a1);
Love[] t = Love.values();//返回枚举类对象的数组
t[0].show();
t[1].show();
}
}
class Weather{
public static final Weather summer = new Weather("夏天");
public static final Weather spring = new Weather("春天");
private String name;
private Weather(String name){
this.name = name;
}
@Override
public String toString() {
return name;
}
}
enum Love implements car{
Love1(true){
@Override
public void show() {
System.out.println("你开的是奔驰");
}
},Love2(false){
@Override
public void show() {
System.out.println("你骑得自行车");
}
};
private boolean islove;
private Love(boolean islove){
this.islove = islove;
}
@Override
public String toString() {
return islove+"";
}
}
interface car{
abstract public void show();
}
2.注解
public class Test2 {
@Test
@SuppressWarnings("all")
@Myinnovation("my")
public void test1(){
int t;
}
}
@interface Myinnovation{
String value();
}