Java枚举使用详解

JDK1.5之后可以借助enum关键字定义枚举类型,语法结构如下:
 

[public] enum 枚举名称 [implements 接口列表] {

	枚举对象1[,枚举对象2] [,…];

	[成员变量1;]
	[成员变量2;]
	[…]
	
	[(静态或非静态)代码块]

	[构造方法1]
	[构造方法2]
	[…]

	[普通方法1]
	[普通方法2]
	[…]

	[抽象方法1]
	[抽象方法2]
	[…]
    }

或许你认为枚举是这样的:

public enum Color {
	RED, GREEN, BLUE;// 定义三个枚举对象
}

但实际上这种方式我们几乎不用,太low了。下面这种方式才是我们的常用形式:

public enum Color {

	RED(1, "红色"), GREEN(2, "绿色"), BLUE(3, "蓝色");

	private int value;
	private String label;

	private Color(int value, String label) {
		this.value = value;
		this.label = label;
	}

	public int getValue() {
		return value;
	}

	public String getLabel() {
		return label;
	}
}

可以直接在枚举中定义抽象方法,此时每个枚举对象需要实现该抽象方法,如下示例

enum Color {

	RED {
		public String getLabel() {
			return "红颜色";
		}
	},
	GREEN {
		public String getLabel() {
			return "绿颜色";
		}
	};
	public abstract String getLabel();
}

public class Test {
	public static void main(String[] args) {
		for (Color color : Color.values()) {
			String label = color.getLabel();
			System.out.println(label);
		}
	}
}

switch也可以使用枚举类型

package Book;

public class Testa {

	public static void main(String[] args) {
		for (Color color : Color.values()) {
			System.out.println(color);
		}
	}
}

enum Color{
	RED(), GREEN(), BLUE();
	
	public static void print(Color color) {
		switch(color) {
			case RED:{
				System.out.println("红色");
				break;
			}
			case GREEN:{
				System.out.println("绿色");
				break;
			}
			case BLUE:{
				System.out.println("蓝色");
				break;
			}
			default:{
				System.out.println("未知");
				break;
			}
		}
	}
}

enum关键字和Enum类:

Enum类是一个抽象类,该类是Java 语言枚举类型的父类,即enum关键字自定义的枚举类型相当于定义一个继承java.lang.Enum抽象类的子类。
Enum类构造方法:
protected  Enum(String name, int ordinal) :该构造方法接收两个参数,一个表示枚举的名字,另外一个表示枚举的序号;
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值