Java学习:java枚举实例,
分享于 点击 2291 次 点评:244
Java学习:java枚举实例,
java的枚举类型
先贴上实例
public class Test {
enum Example{
Example_A("This is Example_A"),//定义带参数的枚举成员
Example_B("this is Example_B"),
Example_C(3);
private String description;
private int i = 2;
private Example() {}
private Example(String description) {
this.description = description;
}
private Example(int i) {
this.i = this.i+i;//翻一番
}
public String getDescription() {
return description;
}
public int getI() {
return i;
}
}
public static void main(String[] args) {
for(int i = 0;i<Example.values().length;i++) {
System.out.println(Example.values()[i]+"调用getDescription方法:"+Example.values()[i].getDescription());
}
System.out.println(Example.valueOf("Example_C")+"调用getI方法:"+Example.valueOf("Example_C").getI());
}
}
运行结果如下
Example_A调用getDescription方法:This is Example_A
Example_B调用getDescription方法:this is Example_B
Example_C调用getDescription方法:null
Example_C调用getI方法:5
以上是一个比较典型的enum例子,下面给出一些解释:
1.枚举类型中可以添加构造方法。必须用private修饰。
2.当枚举类型中存在构造方法的时候,在枚举成员后面添加相应的构造参数,如Example_c(“This is ExampleA”)对应的是Example(String description)。
3.枚举类型的values()方法返回包含所有枚举成员的数组,valueOf(String s)方法,s表示枚举成员的名称,返回该枚举成员。
扩展
在枚举类型中实现带抽象方法的接口
以下为实例:
interface d{//定义接口
public String getDescription();
public int getI();
}
public class Test{
public static int i = 5;
public enum Example implements d{
Example_A{
public String getDescription() {
return("This is Example_A");
}
public int getI() {
return i;
}
},//成员之间要用逗号隔开
Example_B{
public String getDescription() {
return("this is Example_B");
}
public int getI() {
return i*2;
}
}
}
public static void main(String[] args) {
for(int i =0;i<Example.values().length;i++) {
System.out.println(Example.values()[i]+"调用的getDescription()方法为:"+Example.values()[i].getDescription());
}
for(int i =0;i<Example.values().length;i++) {
System.out.println(Example.values()[i]+"调用的getI()方法为:"+Example.values()[i].getI());
}
}
}
运行结果如下
Example_A调用的getDescription()方法为:This is Example_A
Example_B调用的getDescription()方法为:this is Example_B
Example_A调用的getI()方法为:5
Example_B调用的getI()方法为:10
需注意,每一个成员的定义间,用逗号隔开。
相关文章
- 暂无相关文章
用户点评