2012-07-26 44 views
1

在學習java的時候,我在附近晃來晃去,發現問題116574接受答案包含一些我不明白的java代碼。這個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(); 
      } 
    } 
} 

它看起來先進由於代碼的組織,我很好奇吧。如果它適合於提出這樣的問題:可能有人願意解釋一下這個代碼?

它是如何來一個枚舉包含主?它不應該是一個班級嗎? (Eclipse對此並不高興,但在詢問「選擇Java應用程序」後運行了主函數)這個結構與FUN0,FUN1是什麼?

解釋此主題的一些教程文本的指針已經讓我開心。

+0

您可以將代碼粘貼到您的問題中嗎?我們不妨完整記錄你在這裏提到的內容。 – 2012-07-26 09:45:20

+0

該問題被編輯爲包含一個鏈接到SO。這應該夠了吧。 – Matthias 2012-07-26 10:59:19

+0

但是SO是完全可編輯的,你不能保證代碼將保持現在的狀態(授予,你連接的問題和答案是相當流行的,所以它不太可能改變)。此外,在這裏使用代碼使得它完全清楚你所指的代碼,然後其他用戶不必爲此問題點擊。 – 2012-07-26 11:18:18

回答

2

這是一個enum其中每個實例都覆蓋getResult方法。

你應該記住的是,enum或多或少只是一個普通的課程。

它是如何來FileSizeBench是枚舉而不是類?

因爲它使用的是enum關鍵字來代替class聲明。使用enum是因爲SomeEnum具有預定義(在編譯時知道)的實例數。

+0

該教程已經,並沒有解釋我要求的功能... – Matthias 2012-08-15 17:16:10

+0

刪除鏈接。我的文章是回答你的問題,還是你還不清楚? – aioobe 2012-08-16 15:26:15

+0

你的答案可能與它有一個奇怪的底色一樣短。特別是「因爲它被聲明爲枚舉」部分。 – Matthias 2012-08-19 11:34:09