枚举与元注解

125 阅读2分钟

一、枚举

1.为什么引入枚举类型?

	        为了解决常量的缺点
		常量不做任何检查,想传什么值都可以,甚至出现越界情况
		这时使用枚举就可以减少参数传递的错误性

2.枚举的概念

	就是将变量的值一一列举出来,变量的值,只局限于列举的范围之内

格式

	public enum{ 枚举值1,枚举值2,枚举值3}
定义枚举类要使用关键字enum

特点

	1:所有枚举类都是Enum的子类
	2:可以通过枚举.枚举项名称来访问
	3:每一个枚举项其实就是该枚举的一个对象
	4:枚举也是一个类,也可以定义成员
	5:枚举类的第一行必须是枚举项,最后一项最好使用分号
	6:枚举类可以有构造器,默认private的,构造器用法比较特殊 :枚举项(),没有new关键字
	7:枚举类也可以有抽象方法,但是枚举类必须重写该方法

3.枚举类中的常见方法

	name()
		获取枚举项的名称
	values
		获取所有枚举项

二、注解

1.什么是注解

对程序进行标注和解释

2.注解和注释的区别

注释
	给程序员看的
注解
	给编译器看的,标示一些特殊功能

3.常见到的注解

@Deprecated
	标记类,方法,属性过时,不建议使用了
@Override  
    重写
@SuppressWarnings()
	压制警告(把所有的警告都消除)
            

4.自定义注解

格式

	public @Interface  注解名称{

public 属性类型 属性名() default 默认值;
 }
 

属性类型限制

		基本数据类型
		String
		Class
		注解
		枚举
		以及以上类型的一维数组

注意:

1.如果注解中但凡有一个属性没有给默认值,在使用的时候必须给该属性指定默认值
2.特殊属性value如果使用时只需要给value属性赋值,value就可以省略

5.元注解

写在注解上面的注解

四大元注解

	@Target
		指明了注解能在哪里使用,由ElementType指定
	@Retention
		指定注解生命周期.生命周期的长短取决于@Retention的属性RetentionPolicy指定的值
			
	@Inherit
		表示注解可以被子类继承
	@Documented
		表示该自定义注解会出现在API文档里面