Java学习:java枚举实例

本文深入探讨了Java枚举类型的使用方法,包括如何定义带参数的枚举成员、使用构造方法及实现接口。通过具体示例介绍了枚举成员的定义、访问枚举成员的方法以及在枚举类型中实现接口的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值