2011-09-22 144 views
0
enum itProfs { 
    private int sal; 
    DEVELOPER(30), ANALYST(20); 
    itProfs(int sal){ 
     this.sal = sal; 
    } 
    public int getSal(){ 
     return sal; 
    } 
} 

是什麼原因?爲什麼這個Java枚舉代碼不能編譯?

+2

你會得到什麼錯誤?它可能會告訴你到底是什麼原因和問題;) – krtek

+1

是否有某些原因導致你沒有製作「itProfs」類,並且使DEVELOPER和ANALYST成爲enum ??????? – paulsm4

+0

嗨,大家好!感謝您的建議。我知道枚舉值首先出現的錯誤。我想知道Java中的內部實現爲什麼。這對我來說並不那麼直觀。你可以更深入地解釋一下這個問題嗎(例如,內存分配,內部?)Btw這只是一個示例代碼,因爲我正在深入學習java。 –

回答

5

您應該先枚舉枚舉值。

enum itProfs { 
    DEVELOPER(30), ANALYST(20); 
    private int sal; 
    itProfs(int sal){ 
     this.sal = sal; 
    } 
    public int getSal(){ 
     return sal; 
    } 
} 
+0

嗨,大家好!感謝您的快速回答。我知道​​錯誤,枚舉值首先。我想知道Java中的內部實現爲什麼。它不是那麼直觀。你可以更深入地解釋一下這個問題(例如內存分配,內部結構? –

+2

是正確的原因,這是語法定義的方式,否則他們可能會這麼做,但它們不是 – MeBigFatGuy

+0

@BrevisIunius,它與內存分配無關。我認爲這裏的主要觀點是可讀性,當有人在查看枚舉代碼時,他想知道的第一件事是可用的值,而且它會非常不舒服搜索所有的類定義。 –