ser*_*g10 54 java enums class-design
我有一个界面 - 这是一个很好的人为的版本作为一个例子:
public interface Particle {
enum Charge {
POSITIVE, NEGATIVE
}
Charge getCharge();
double getMass();
etc...
}
Run Code Online (Sandbox Code Playgroud)
如果我将Charge
枚举定义为静态,那么这种实现方式有什么不同- 即这有什么影响:
public interface Particle {
static enum Charge {
POSITIVE, NEGATIVE
}
Charge getCharge();
double getMass();
etc...
}
Run Code Online (Sandbox Code Playgroud)
idr*_*sid 86
不,它没有任何区别.然而,原因不是因为它是界面内的成员声明,正如乔恩所说.真正的原因是根据语言规范(8.9)
嵌套枚举类型是隐式静态的.允许将嵌套的枚举类型显式声明为静态是允许的.
在以下示例中,static也没有任何区别(即使我们没有接口):
public class A {
enum E {A,B};
}
public class A {
static enum E {A,B};
}
Run Code Online (Sandbox Code Playgroud)
嵌套私有枚举的另一个例子(不是隐式公开的).
public class A {
private static enum E {A,B}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23850 次 |
最近记录: |