这个java程序如何工作?

时间:2012-07-26 09:40:48

标签: java enums

在学习java的同时,我正在搜索SO并找到问题116574接受回答包含一些我不理解的java代码。

编辑: 代码基本上如下所示:

public enum SomeEnum {

    FUN0 {
        @Override
        public void function() {
              System.out.println("0 0 0 0 0");
        }
    },
    FUN1 {
        @Override
        public void function() {
              System.out.println("1 1 1 1 1");
        }
    };

    public abstract void function();

    public static void main(String[] args) throws Exception {

            for (SomeEnum test : values()) {
                    test.function();
            }
    }
}

由于代码的组织,它看起来很先进,我很好奇。如果SO适合提出这样的问题:有人愿意解释一下这段代码吗?

枚举如何包含main?它应该不是一个班级吗? (Eclipse对此并不高兴,但在询问“选择Java应用程序”后运行主函数)这个构造与FUN0,FUN1是什么?

指向解释此主题的一些教程文本的指针已经让我感到高兴。

1 个答案:

答案 0 :(得分:2)

这是enum,其中每个实例都覆盖getResult方法。

您应该记住的是enum或多或少只是一个普通班级。

  

FileSizeBench是一个枚举而不是一个类怎么样?

因为它是使用enum关键字而非class声明的。使用enum是因为SomeEnum具有预定义的(在编译时知道的)实例数。