枚举类
- 枚举类的常量对象列表必须在枚举类的首行,它是常量,建议使用全大写
- 常量后面有参数,需要自定义有参构造器
- 枚举类默认继承java.lang.Enum类,不能在继承其他的类型
- JDK1.5后 switch 提供支持枚举类型,case后面写枚举常量名 ```java enum Color{ // 枚举实例 RED, GREEN, BLUE; }
class Color{ // 类实现枚举
public static final Color RED = new Color();
public static final Color GREEN = new Color();
public static final Color BLUE = new Color();
}
// 迭代遍历枚举元素 for(Color myVar: Color.values()) System.out.println(myVar);
// switch使用 Color myVar = Color.BLUE; switch(myVar){ case RED: System.out.println(“red”);break; case GREEN: System.out.println(“green”);break; case BLUE: System.out.println(“blue”);break; }
```java
String toString();
// 可以重写toString
String name();
// 返回常量名
int RED.ordinal();
// 返回常量序号,类似数组的索引
[] values();
// 返回枚举中的所有值
T valueOf("RED");
// 字符串返回枚举常量,不存在抛异常 IllegalArgumentException
// 星期 Week
MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY("星期三"),
THURSDAY("星期四"), FRIDAY("星期五"), SATURDAY("星期六"),
SUNDAY("星期天");
// 月份 Month
JANUARY("一月"), FEBRUARY("二月"), March("三月"), April("四月"),
MAY("五月"), JUNE("六月"), JULY("七月"), AUGUST("八月"),
SEPTEMBER("九月"), OCTOBER("十月"), NOVEMBER("十一月"), DECEMBER("十二月");
// 性别 Gender
MAN("男"), WOMAN("女"), UNKNOWN("未知");
// 季节 Season
SPRING("春天"), SUMMER("夏天"), AUTUMN("秋天"), WINTER("冬天");
// 支付方式 Payment
CASH("现金"), WECHATPAY("微信"), ALIPAY("支付宝"),
BANKCARD("银行卡"), CREDITCARD("信用卡");
// 员工状态 Status
BUSY("忙碌"), FREE("闲空"), VOCATION("休假");
// 订单状态 Status
NONPAYMENT("未付款"), PAID("已付款"), FULFILLED("已配货"), DELIVERED("已发货"),
CHECKED("已确认收货"), RETURN("退货"), EXCHANGE("换货"), CANCEL("取消");
注解
- 注解是1.5更新的新特性
- 注解和注释是一个东西
- 注释:给程序员看的,不会被加载到虚拟机中
- 注解:通过设置存活时间,可以加载到虚拟机中,被反射读取,可以做一些配置
public @interface MyAnnotation{
String name() default "张三";
int age() default 20;
String set();
}
@MyAnnotation("男"); // 一个为默认属性
@MyAnnotation(sex="男", name="张三", age=11);
系统预定义注释:注解是以@注释名
在代码中存在,还可以添加一些参数值
@SuppressWarnings(value=”unchecked”)
// 抑制编译警告
@Override
// 方法重写,检测
@Deprecated
// 表示已过时不建议使用
@Test
// 单元测试
@author
@param