zoukankan      html  css  js  c++  java
  • Java 枚举

    /*
    * 枚举是JDK 1.5 引入 在java.lang中
    * 常用的方法 有int CompareTo(E e) 比较此枚举与指定对象的顺序
    * Class<E> getDeclaringClass() 返回与此枚举类型对应的Class 对象
    * String name() 返回枚举对象的名称 在枚举申明中对其进行申明
    * int ordinal() 返回枚举常量的序数
    * String toString()
    * Static <T extends Enum<T>> T valueOf(Class<T> enumType,String name) 返回带指定名称的指定枚举类型的枚举常量

    可以把 enum 看成是一个普通的 class,它们都可以定义一些属性和方法,不同之处是:enum 不能使用 extends 关键字继承其他类,因为 enum 已经继承了 java.lang.Enum(java是单一继承)。
    */

      1 package com.test.Enum;
      2 
      3 public class EnumDemo {
      4 
      5     public enum ColorEnum {
      6         // 普通枚举
      7         red, green, black, pink;
      8     }
      9 
     10     public enum SeasonEnum {
     11         // 枚举需要写在最前面 否则编译出错 枚举可以像普通类一样 带有属性和方法
     12         spring, summer, autumn, winter;
     13         private static final String position = "test";
     14 
     15         public static SeasonEnum getSeason() {
     16             if ("test".equals(position)) {
     17                 return spring;
     18             } else {
     19                 return winter;
     20             }
     21         }
     22     }
     23 
     24     public enum Gender {
     25         // 通过括号赋值,并且必须带有一个参数构造方法和一个属性 另外一个方法 否则编译出错
     26         MAN("MAN"), WOMAN("WOMAN");
     27 
     28         private final String Value;
     29 
     30         private Gender(String Value) {
     31             this.Value = Value;
     32         }
     33 
     34         public String getValue() {
     35             return Value;
     36         }
     37     }
     38 
     39     public enum OrderState {
     40         // 带抽象方法的枚举
     41         CANCEL {
     42             public String getName() {
     43                 return "已取消";
     44             }
     45         },
     46         WAITING {
     47             public String getName() {
     48                 return "待审核";
     49             }
     50         },
     51         WAITPAMENT {
     52             public String getName() {
     53                 return "待支付";
     54             }
     55         },
     56         ADMEASUREPRODUCT {
     57             public String getName() {
     58                 return "正在配送";
     59             }
     60         },
     61         WAITDELIVER {
     62             public String getName() {
     63                 return "等待发货";
     64             }
     65         },
     66         DELIVERED {
     67             public String getName() {
     68                 return "已发货";
     69             }
     70         },
     71         RECEIVED {
     72             public String getName() {
     73                 return "已收货";
     74             }
     75         };
     76         public abstract String getName();
     77     }
     78 
     79     public static void main(String[] args) {
     80         // 枚举是一种类型,用于定义变量,以限制变量的赋值;赋值时通过“枚举名.值”取得枚举中的值;
     81         ColorEnum colorEnum = ColorEnum.black;
     82         switch (colorEnum) {
     83         case red:
     84             System.out.println("color is red");
     85             break;
     86         case green:
     87             System.out.println("color is green");
     88             break;
     89         case black:
     90             System.out.println("color is black");
     91             break;
     92         case pink:
     93             System.out.println("color is pink");
     94             break;
     95         default:
     96             break;
     97         }
     98         // 遍历枚举
     99         System.out.println("遍历ColorEnum中的值:");
    100         for (ColorEnum colorEnum2 : ColorEnum.values()) {
    101             System.out.println(colorEnum2);
    102         }
    103 
    104         // 获取枚举的个数
    105         int mount = ColorEnum.values().length;
    106         if (mount > 0) {
    107             System.out.println("枚举有" + mount + "个");
    108         }
    109 
    110         // 获取每个枚举值 所在位置的索引
    111         System.out.println("红色所在位置索引:" + ColorEnum.red.ordinal());
    112         System.out.println("黑色所在位置的索引:" + ColorEnum.black.ordinal());
    113         System.out.println("粉色所在位置的索引:" + ColorEnum.pink.ordinal());
    114         System.out.println("绿色所在位置的索引:" + ColorEnum.green.ordinal());
    115 
    116         System.out.println("枚举默认实现了Comparable接口:");
    117         System.out.println(ColorEnum.red.compareTo(ColorEnum.green));
    118 
    119         System.out.println("季节为:" + SeasonEnum.getSeason());
    120 
    121         System.out.println("==============");
    122         for (Gender gender : Gender.values()) {
    123             System.out.println(gender.Value);
    124         }
    125 
    126         System.out.println("=========");
    127         for (OrderState orderState : OrderState.values()) {
    128             System.out.println(orderState.getName());
    129         }
    130     }
    131 
    132 }
  • 相关阅读:
    pause
    vim 修改复制过来的代码缩进
    解决TeamViewer提示商业用途
    服务器上安装解决ole错误
    vs密匙
    oracle11g忘记管理员密码
    sql同时删除多个表的数据
    删除表中多余的重复记录(多个字段),只留有rowid最小的记录
    查找表中多余的重复记录(多个字段)
    删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
  • 原文地址:https://www.cnblogs.com/QQ931697811/p/4971717.html
Copyright © 2011-2022 走看看