枚举类

  • 枚举类的常量对象列表必须在枚举类的首行,它是常量,建议使用全大写
  • 常量后面有参数,需要自定义有参构造器
  • 枚举类默认继承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; }

  1. ```java
  2. String toString();
  3. // 可以重写toString
  4. String name();
  5. // 返回常量名
  6. int RED.ordinal();
  7. // 返回常量序号,类似数组的索引
  8. [] values();
  9. // 返回枚举中的所有值
  10. T valueOf("RED");
  11. // 字符串返回枚举常量,不存在抛异常 IllegalArgumentException
  1. // 星期 Week
  2. MONDAY("星期一"), TUESDAY("星期二"), WEDNESDAY("星期三"),
  3. THURSDAY("星期四"), FRIDAY("星期五"), SATURDAY("星期六"),
  4. SUNDAY("星期天");
  5. // 月份 Month
  6. JANUARY("一月"), FEBRUARY("二月"), March("三月"), April("四月"),
  7. MAY("五月"), JUNE("六月"), JULY("七月"), AUGUST("八月"),
  8. SEPTEMBER("九月"), OCTOBER("十月"), NOVEMBER("十一月"), DECEMBER("十二月");
  9. // 性别 Gender
  10. MAN("男"), WOMAN("女"), UNKNOWN("未知");
  11. // 季节 Season
  12. SPRING("春天"), SUMMER("夏天"), AUTUMN("秋天"), WINTER("冬天");
  13. // 支付方式 Payment
  14. CASH("现金"), WECHATPAY("微信"), ALIPAY("支付宝"),
  15. BANKCARD("银行卡"), CREDITCARD("信用卡");
  16. // 员工状态 Status
  17. BUSY("忙碌"), FREE("闲空"), VOCATION("休假");
  18. // 订单状态 Status
  19. NONPAYMENT("未付款"), PAID("已付款"), FULFILLED("已配货"), DELIVERED("已发货"),
  20. CHECKED("已确认收货"), RETURN("退货"), EXCHANGE("换货"), CANCEL("取消");

注解

  1. 注解是1.5更新的新特性
  2. 注解和注释是一个东西
    1. 注释:给程序员看的,不会被加载到虚拟机中
    2. 注解:通过设置存活时间,可以加载到虚拟机中,被反射读取,可以做一些配置
  1. public @interface MyAnnotation{
  2. String name() default "张三";
  3. int age() default 20;
  4. String set();
  5. }
  6. @MyAnnotation("男"); // 一个为默认属性
  7. @MyAnnotation(sex="男", name="张三", age=11);

系统预定义注释:注解是以@注释名在代码中存在,还可以添加一些参数值

  1. @SuppressWarnings(value=”unchecked”)
  2. // 抑制编译警告
  3. @Override
  4. // 方法重写,检测
  5. @Deprecated
  6. // 表示已过时不建议使用
  7. @Test
  8. // 单元测试
  9. @author
  10. @param