java基础枚举和注解
2016-10-04 22:23
309 查看
自定义枚举类
public class TestSeason { public static void main(String[] args) { Season spring = Season.SPRING; System.out.println(spring); spring.show(); System.out.println(spring.getSeasonName()); } } //枚举类 class Season{ //1.提供类的属性,声明为private final private final String seasonName; private final String seasonDesc; //2.声明为final的属性,在构造器中初始化。 private Season(String seasonName,String seasonDesc){ this.seasonName = seasonName; this.seasonDesc = seasonDesc; } //3.通过公共的方法来调用属性 public String getSeasonName() { return seasonName; } public String getSeasonDesc() { return seasonDesc; } //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 [seasonName=" + seasonName + ", seasonDesc=" + seasonDesc + "]"; } public void show(){ System.out.println("这是一个季节"); } }使用jdk提供的枚举类
/* * 一、枚举类 * 1.如何自定义枚举类 * 2.如何使用enum关键字定义枚举类 * >常用的方法:values() valueOf(String name) * >如何让枚举类实现接口:可以让不同的枚举类的对象调用被重写的抽象方法,执行的效果不同。(相当于让每个对象重写抽象方法) */ public class TestSeason1 { public static void main(String[] args) { Season1 spring = Season1.SPRING; System.out.println(spring); spring.show(); System.out.println(spring.getSeasonName()); System.out.println(); //1.values() Season1[] seasons = Season1.values(); for(int i = 0;i < seasons.length;i++){ System.out.println(seasons[i]); } //2.valueOf(String name):要求传入的形参name是枚举类对象的名字。 //否则,报java.lang.IllegalArgumentException异常 String str = "WINTER"; Season1 sea = Season1.valueOf(str); System.out.println(sea); System.out.println(); Thread.State[] states = Thread.State.values(); for(int i = 0;i < states.length;i++){ System.out.println(states[i]); } sea.show(); } } interface Info{ void show(); } //枚举类 enum Season1 implements Info{ SPRING("spring", "春暖花开"){ public void show(){ System.out.println("春天在哪里?"); } }, SUMMER("summer", "夏日炎炎"){ public void show(){ System.out.println("生如夏花"); } }, AUTUMN("autumn", "秋高气爽"){ public void show(){ System.out.println("秋天是用来分手的季节"); } }, WINTER("winter", "白雪皑皑"){ public void show(){ System.out.println("冬天里的一把火"); } }; private final String seasonName; private final String seasonDesc; private Season1(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 + "]"; } // public void show(){ // System.out.println("这是一个季节"); // } }jdk提供的注解
/* * 注解 * 1.JDK提供的常用的注解 * @Override: 限定重写父类方法, 该注释只能用于方法 @Deprecated: 用于表示某个程序元素(类, 方法等)已过时 @SuppressWarnings: 抑制编译器警告 2.如何自定义一个注解 3.元注解 */ public class TestAnnotation { public static void main(String[] args) { Person p = new Student(); p.walk(); p.eat(); @SuppressWarnings({ "rawtypes", "unused" }) List list = new ArrayList(); @SuppressWarnings("unused") int i = 10; // System.out.println(i); } } @MyAnnotation(value = "atguigu") class Student extends Person{ @Override public void walk(){ System.out.println("学生走路"); } @Override public void eat(){ System.out.println("学生吃饭"); } } @Deprecated class Person{ String name; int age; public Person() { super(); } @MyAnnotation(value = "atguigu") public Person(String name, int age) { super(); this.name = name; this.age = age; } @MyAnnotation(value = "atguigu") public void walk(){ System.out.println("走路"); } @Deprecated public void eat(){ System.out.println("吃饭"); } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } }自定义注解
//自定义的注解 @Target({TYPE,FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE}) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnnotation { String value() default "hello"; }
相关文章推荐
- 【Java基础】枚举和注解
- 黑马程序员_java基础加强_静态导入_反射_枚举_注解_内省_泛型_代理
- Java基础加强_Eclipse、枚举、反射、注解、泛型、类加载器、动态代理
- Java基础学习笔记之枚举与注解
- 【Java基础】枚举和注解
- 黑马程序员_java_基础加强_静态导入_反射_枚举_注解_内省_泛型
- 黑马程序员:基础加强(可变参数、增强for、枚举、javabBean、BeanUtils、注解、泛型)
- 23-java基础加强(反射、泛型、注解、动态代理)
- 01-java基础加强,eclipse工具使用,快捷键,断点调试,单元测试,jdk5新特性,增强for循环,集合map,list,可变参数,枚举,反射,泛型
- Java编程思想学习笔记——枚举、注解
- Java基础加强---Annotation(注解)
- 黑马程序员 -java基础 类加载器注解内省
- 黑马程序员 22 Java基础加强-04-注解篇
- Annotation & Enum :Java中注解和枚举的使用
- 理解Java基础之注解Annotation
- java基础---->枚举
- java 基础加强 类的枚举
- java基础加强(三)(注解与泛型)
- Java基础加强枚举笔记
- Java语言基础--枚举