zoukankan      html  css  js  c++  java
  • 枚举类简单了解

    枚举类

     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 }
  • 相关阅读:
    asp.net 2.0-实现数据访问(1)
    跨平台跨服务器跨网站SSO(单点登录)方案的DEMO
    (翻译)Windows Communication Foundation (Workshop)-Part 2:在WCF中操作会话
    ipc的remoting
    忙活了半年的书已经交稿,年后就要出版
    一个ASP.NET2.0的小项目-BLOG
    (论坛答疑点滴)上传控件怎么修改样式?怎么设置readonly?
    【LoveCherry】上海.NET招聘!!!!!!!!!!!!!!!!!!!!!!!!!
    【翻译】Scott Mitchell的ASP.NET2.0数据指南中文版索引
    Scott Mitchell 的ASP.NET 2.0数据教程之二十四:: 分页和排序报表数据
  • 原文地址:https://www.cnblogs.com/enjoyjava/p/8192414.html
Copyright © 2011-2022 走看看