• java 枚举类型


    package forTest;

    /*
    枚举也是一种特殊形式的Java类
    枚举中声明的每一个枚举值代表枚举类的一个实例对象
    枚举的构造函数必须为私有的
    枚举可以实现接口或者继承抽象类
    JDK5之后的swith语句还可以接收枚举类型
    枚举都继承了java。lang。Enum类 
    */

    public class Enum {

     public static void main(String[] args) {
      String value1 = Grade1.A.getValue();
      String value2 = Grade2.B.getValue();
      String value3 = Grade3.A.level();
      System.out.println(value1 + "..."+value2+"..."+value3);
      
      //枚举继承的方法:
      System.out.println(Grade2.A.name());
      System.out.println(Grade2.A.ordinal());//返回它在枚举中的位置
      String str = "A";
      Grade2 g = Grade2.valueOf(Grade2.class,str);//返回带指定名称的指定枚举类型的枚举常量。
      Grade2 gg = Grade2.valueOf(str);//同上
      System.out.println(g+"..."+gg);//String toString() 返回枚举常量的名称,它包含在声明中。
      Grade2 values[] = Grade2.values();//遍历枚举值
     }

    }

    //1,枚举Grade2相当于此类的简写形式
    class Grade1{
     public static final Grade1 A = new Grade1("100-90");
     private String value;
     private Grade1(String value) {
      this.value = value;
     }
     
     public String getValue() {
      return this.value;
     }
    }

    //2,枚举类,单例模式的扩展型,枚举中的实例不一定非得是final的,如果只有一个实例,那就是单例设计模式了
    enum Grade2{
     A("100-90"),B("10-90");
     private String value;
     private Grade2(String value) {
      this.value = value;
     }
     
     public String getValue() {
      return this.value;
     }
     
    /* public void setValue(String value) {
      this.value = value;
     } 不加final也可以用这个方法来改变值*/
    }

    //3,带抽象方法的枚举类
    enum Grade3{
     A("100-90") {
      public String level() {
       return "学霸";
      }
     }
     
     ,B("10-90") {
      public String level() {
       return "屌丝";
      }
     };
     
     private String value;
     private Grade3(String value) {
      this.value = value;
     }
     
     public String getValue() {
      return this.value;
     }
     public abstract String level();
    }

  • 相关阅读:
    批处理命令之实现修改环境变量的值
    【hihocoder 1304】搜索一·24点
    【hihocoder 1297】数论四·扩展欧几里德
    【hihocoder 1298】 数论五·欧拉函数
    【hihocoder 1303】模线性方程组
    C语言如何动态分配二维数组
    Istream中的函数
    string 与 char * 转换
    boost 系列 1:boost 直接使用
    glog功能介绍 一分钟 51CTO技术博客
  • 原文地址:https://www.cnblogs.com/flying607/p/3443237.html
Copyright © 2020-2023  润新知