A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高云 中级黑马   /  2015-12-5 14:11  /  648 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class TestEnum {
  2.         public static void main(String[] args) {
  3.                 // 枚举是一种类型,用于定义变量,以限制变量的赋值;
  4.                 // 赋值时通过"枚举名.值"取得枚举中的值
  5.                 ColorEnum colorEnum = ColorEnum.blue;
  6.                 switch (colorEnum) {
  7.                 case red:
  8.                         System.out.println("color is red");
  9.                         break;
  10.                 case green:
  11.                         System.out.println("color is green");
  12.                         break;
  13.                 case yellow:
  14.                         System.out.println("color is yellow");
  15.                         break;
  16.                 case blue:
  17.                         System.out.println("color is blue");
  18.                         break;
  19.                 }

  20.                 // 遍历枚举
  21.                 System.out.println("遍历ColorEnum枚举中的值");
  22.                 for (ColorEnum color : ColorEnum.values()) {
  23.                         System.out.println(color);
  24.                 }

  25.                 // 获取枚举的个数
  26.                 System.out.println("ColorEnum枚举中的值有" + ColorEnum.values().length + "个");

  27.                 // 获取枚举的索引位置,默认从0开始
  28.                 System.out.println(ColorEnum.red.ordinal());
  29.                 System.out.println(ColorEnum.green.ordinal());
  30.                 System.out.println(ColorEnum.yellow.ordinal());
  31.                 System.out.println(ColorEnum.blue.ordinal());

  32.                 System.out.println("-------------");
  33.                 // 枚举默认实现了java.lang.Comparable接口
  34.                 System.out.println(ColorEnum.red.compareTo(ColorEnum.green));

  35.                 System.out.println("-------------");
  36.                 System.err.println("季节为" + SeasonEnum.getSeason());

  37.                 for (Gender gender : Gender.values()) {
  38.                         System.out.println(gender.value);
  39.                 }

  40.                 System.out.println("-------------");
  41.                 for (OrderState order : OrderState.values()) {
  42.                         System.out.println(order.getName());
  43.                 }
  44.         }
  45.        
  46.         /*
  47.          * 颜色 普通枚举
  48.          */
  49.         public enum ColorEnum {
  50.                 red, green, yellow, blue;
  51.         }

  52.         /*
  53.          * 季节 枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性或方法
  54.          */
  55.         public enum SeasonEnum {
  56.                 // 注: 枚举写在最前面,否则编译出错
  57.                 spring, summer, autumn, winter;

  58.                 private final static String position = "test";

  59.                 public static SeasonEnum getSeason() {
  60.                         if ("test".equals(position)) {
  61.                                 return spring;
  62.                         } else {
  63.                                 return winter;
  64.                         }
  65.                 }
  66.         }

  67.         /*
  68.          * 性别 实现带有构造器的枚举
  69.          */
  70.         public enum Gender {
  71.                 /*
  72.                  * 通过括号赋值,而且必须带有一个有参数构造函数和一个属性跟方法,否则编译出错 赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值
  73.                  * 如果不赋值则不能写构造函数,赋值编译也出错
  74.                  */
  75.                 MAN("man"), WOMEN("women");
  76.                 private final String value;

  77.                 // 构造函数默认也只能是private,从而保证构造函数只能在内部使用
  78.                 Gender(String value) {
  79.                         this.value = value;
  80.                 }

  81.                 public String getValue() {
  82.                         return value;
  83.                 }
  84.         }

  85.         /*
  86.          * 订单状态 实现带有抽象方法的枚举
  87.          */
  88.         public enum OrderState {
  89.                 // 已取消
  90.                 CANCEL {
  91.                         public String getName() {
  92.                                 return "已取消";
  93.                         }
  94.                 },
  95.                 // 待审核
  96.                 WAITCONFIRM {
  97.                         public String getName() {
  98.                                 return "待审核";
  99.                         }
  100.                 },
  101.                 // 等待付款
  102.                 WAITPAYMENT {
  103.                         public String getName() {
  104.                                 return "等待付款";
  105.                         }
  106.                 },
  107.                 // 正在配货
  108.                 ADMEASUREPRODUCT {
  109.                         public String getName() {
  110.                                 return "正在配货";
  111.                         }
  112.                 },
  113.                 // 等待发货
  114.                 WAITDELIVER {
  115.                         public String getName() {
  116.                                 return "等待发货";
  117.                         }
  118.                 },
  119.                 // 已发货
  120.                 DELIVERED {
  121.                         public String getName() {
  122.                                 return "已发货";
  123.                         }
  124.                 },
  125.                 // 已收货
  126.                 RECEIVED {
  127.                         public String getName() {
  128.                                 return "已收货";
  129.                         }
  130.                 };

  131.                 public abstract String getName();
  132.         }
  133. }
复制代码

1 个回复

倒序浏览
哪里有题干?只有代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马