• 枚举类简单了解


    枚举类

     1 package EnumDemo;
     2 
     3 public class EnumDemo {
     4     public static void main(String[] args) {
     5         System.out.println(Color.BLUE);
     6         Color[] colors = Color.values();
     7         //得到枚举类型的一个数组   枚举类型自己有一个values()方法
     8         for (Color c : colors) {
     9             
    10             //System.out.println(c);
    11             //下面一条语句跟上面一条语句效果相同,也就是说,打印c时,默认调用了c的toString()方法
    12             //这个toString方法输出的就是枚举值!但是如果重写了toString()方法,
    13             //同时写System.out.println(c); 和System.out.println(c.toString());
    14             //语句,将调用重写了的toString()方法
    15             System.out.println(c.toString());//用foreach语句遍历数组,打印枚举值
    16             
    17         }
    18         System.out.println(Person.P1.toString());
    19         //System.out.println(Person.P1) 与上面语句相同,默认调用toString()方法进行输出
    20         Person[] ps = Person.values();//得到Person枚举的三个对象的数组
    21         for(Person p : ps) {
    22             System.out.println(p);//等价于调用p.toString()
    23         }
    24         
    25         Person p = Person.P3;
    26         switch(p) {
    27         case P1:
    28             System.out.println("switch语句输出:" + Person.P1);
    29             break;
    30         case P2:
    31             System.out.println("switch语句输出:" + Person.P2);
    32             break;
    33         case P3:
    34             System.out.println("switch语句输出:" + Person.P3);
    35             break;    //Person.P3       类名.常量名
    36             
    37             
    38         }
    39     
    40     }
    41 }
    42 
    43 //JVM去加载使用枚举类的时候,会预先创建多个枚举类型的对象,供外部对象来使用
    44 enum Color {
    45     //构造了三个Color类型的枚举对象 ,即下述语句:
    46     //public static final Color RED = new Color();
    47     //public static final Color BLUE = new Color();
    48     //public static final Color YELLOW = new Color();
    49     RED,BLUE,YELLOW; //枚举类型的值必须是第一条语句!!!
    50      private Color() {
    51         System.out.println("用自定义的枚举类型构造方法构造一个对象");
    52         //该构造方法执行的次数与创建的枚举值的个数有关
    53         
    54     }
    55     
    56       public String toString() {
    57             return "aa";
    58         }
    59         
    60 }
    61 
    62 enum Person { //枚举本质上就是一个类,因此也具有属性和方法
    63     P1("张明",30),P2("李磊",25),P3("韩雪",20);
    64     //上面三个语句相当于下列语句:
    65     //public static final Person P1 = new Person("张明",30);
    66     //public static final Person P2 = new Person("李磊",25);
    67     //public static final Person P3 = new Person("韩雪",20);
    68     private String name;
    69     //当枚举值不是第一条语句或者不是第一条写的语句时,private String name;会报错
    70     private int age;
    71     private Person(String name,int age) {
    72         this.age = age;
    73         this.name  = name;
    74     }
    75     public String toString() {
    76         return name + "--" + age;
    77     }
    78 }
  • 相关阅读:
    1635:【例 5】Strange Way to Express Integers
    1633:【例 3】Sumdiv
    1632:【 例 2】[NOIP2012]同余方程
    1631:【例 1】青蛙的约会
    1629:聪明的燕姿
    1628:X-factor Chain
    1627:【例 3】最大公约数
    1626:【例 2】Hankson 的趣味题
    file_put_contens小trick
    billu b0x2靶机渗透
  • 原文地址:https://www.cnblogs.com/enjoyjava/p/8192414.html
Copyright © 2020-2023  润新知