欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java学习:java枚举实例,

来源: javaer 分享于  点击 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

需注意,每一个成员的定义间,用逗号隔开。

相关文章

    暂无相关文章
相关栏目:

用户点评