你能用enum来解释这个java程序的输出吗?

时间:2014-10-12 12:06:13

标签: java enums

class Ideone
{
    enum Members{
        A(1),B(2),C(3);  // I have 3 enum constants here
        private int size;
        Members(int size){
            //System.out.println("Initializing var with size = "+size);
        }
    }
    public static void main (String[] args) throws java.lang.Exception
    {
        System.out.print("main ");
        // your code goes here
        for (Members i: Members.values()){
            System.out.print(i.name());
            System.out.println(i.size);
        }       
    }
}

这是程序的输出 -

主 一个 0
乙 0
C 0

为什么尺寸值不打印为1,2和3而不是0?

1 个答案:

答案 0 :(得分:4)

因为您没有映射size属性。将枚举构造函数更改为:

Members(int size){
    this.size = size;
}

顺便说一句:你应该始终将枚举字段标记为final,因为枚举只存在一次(单例)。因此,将private int size更改为private final int size