2011-09-22 113 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,它与内存分配无关。我认为这里的主要观点是可读性,当有人在查看枚举代码时,他想知道的第一件事是可用的值,而且它会非常不舒服搜索所有的类定义。 –