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 }
  • 相关阅读:
    ADF中遍历VO中的行数据(Iterator)
    程序中实现两个DataTable的Left Join效果(修改了,网上第二个DataTable为空,所处的异常)
    ArcGIS api for javascript——鼠标悬停时显示信息窗口
    ArcGIS api for javascript——查询,然后单击显示信息窗口
    ArcGIS api for javascript——查询,立刻打开信息窗口
    ArcGIS api for javascript——显示多个查询结果
    ArcGIS api for javascript——用图表显示查询结果
    ArcGIS api for javascript——查询没有地图的数据
    ArcGIS api for javascript——用第二个服务的范围设置地图范围
    ArcGIS api for javascript——显示地图属性
  • 原文地址:https://www.cnblogs.com/QQ931697811/p/4971717.html
Copyright © 2011-2022 走看看