一个枚举的简单例子

一个简单的枚举例子

public enum ConnectionTypeEm {
	MySQL("1","MYSQL"), Oracle("2","Oracle");

	// 构造方法
	private ConnectionTypeEm(String index,String name) {
		this.index = index;
		this.name = name;
	}

	// 成员变量
	private String index;
	private String name;

	public static void main(String[] args) {
		System.out.println(ConnectionTypeEm.MySQL.getIndex());
	}


	public String getIndex() {
		return index;
	}


	protected void setIndex(String index) {
		this.index = index;
	}


	public String getName() {
		return name;
	}


	protected void setName(String name) {
		this.name = name;
	}
}


在 Java 中,枚举类(Enum)是一种特殊类型的类,用于定义一组常量。以下是创建一个简单枚举类的步骤和示例代码。 --- ### 创建一个简单枚举类 假设我们需要定义一个表示星期几的枚举类,可以按照以下方式实现: ```java // 定义一个简单枚举类 public enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; } ``` 上述代码中,`DayOfWeek` 是一个枚举类,包含 7 个常量,分别表示一周中的每一天。 --- ### 使用枚举类 以下是如何使用该枚举类的示例: ```java public class EnumExample { public static void main(String[] args) { // 输出某个具体的枚举值 System.out.println("今天是:" + DayOfWeek.FRIDAY); // 遍历所有的枚举值 System.out.println("一周中的所有天:"); for (DayOfWeek day : DayOfWeek.values()) { System.out.println(day); } // 判断某个值是否属于该枚举 String input = "FRIDAY"; DayOfWeek day = DayOfWeek.valueOf(input); System.out.println("输入的值对应的枚举是:" + day); // 捕获非法值的情况 try { String invalidInput = "HOLIDAY"; DayOfWeek invalidDay = DayOfWeek.valueOf(invalidInput); } catch (IllegalArgumentException e) { System.out.println("错误:输入的值不属于该枚举类。" + e.getMessage()); } } } ``` --- ### 代码解释 1. **定义枚举类**: - 使用 `enum` 关键字定义枚举类。 - 枚举类中的每个常量都是大写字母,并用逗号分隔。 - 枚举类默认继承自 `java.lang.Enum`,因此具有许多内置方法(如 `values()` 和 `valueOf()`)。 2. **访问枚举值**: - 可以直接通过 `DayOfWeek.MONDAY` 等方式访问具体的枚举值。 - 使用 `DayOfWeek.values()` 方法可以获取枚举类中所有常量的数组。 3. **判断合法性**: - 使用 `DayOfWeek.valueOf(String name)` 方法可以根据字符串名称获取对应的枚举值。 - 如果输入的字符串不属于该枚举类,则会抛出 `IllegalArgumentException` 异常。 4. **遍历枚举值**: - 使用 `for-each` 循环可以轻松遍历枚举类中的所有常量。 --- ### 更复杂的枚举枚举类不仅可以定义常量,还可以包含字段、方法和构造函数。以下是一个更复杂的例子: ```java public enum Planet { MERCURY(3.30E23, 2.44E6), VENUS(4.87E24, 6.052E6), EARTH(5.98E24, 6.378E6); private final double mass; // 质量(单位:千克) private final double radius; // 半径(单位:米) // 构造函数 Planet(double mass, double radius) { this.mass = mass; this.radius = radius; } // 计算重力加速度的方法 public double surfaceGravity() { final double G = 6.67300E-11; // 万有引力常数 return G * mass / (radius * radius); } // 计算物体重量的方法 public double surfaceWeight(double otherMass) { return otherMass * surfaceGravity(); } } public class EnumComplexExample { public static void main(String[] args) { double earthWeight = 80; // 假设一个人在地球上的重量为 80 千克 double mass = earthWeight / Planet.EARTH.surfaceGravity(); // 计算质量 for (Planet p : Planet.values()) { System.out.printf("Your weight on %s is %f%n", p, p.surfaceWeight(mass)); } } } ``` --- ### 代码解释 1. **字段和构造函数**: - 枚举类可以包含私有字段(如 `mass` 和 `radius`),并通过构造函数初始化这些字段。 2. **方法**: - 枚举类可以包含普通方法(如 `surfaceGravity` 和 `surfaceWeight`),用于计算相关属性。 3. **遍历并调用方法**: - 使用 `for-each` 循环遍历所有枚举值,并调用其方法。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值