enum枚举类

枚举Enum: 是一种特殊形式的java类,其中声明的每个枚举类值代表枚举类的一个实例对象,在声明枚举类是也可声明属性、方法、和构造器,但是构造器必须为私有的,也可实现接口,默认继承于Enum抽象类,不允许用户自定义父类。

JDK1.5新增关键字enum定义枚举类,都是Enum<E>的子类,继承Enum类中的所有方法,用于表示取值是否范围中的之一,可以吧相关常量分配到一个类型中,实质就是某种类型清单。JDK1.6中枚举类型可以用于switch结构体中

测试案例

public enum Season{
/、定义枚举类型需要用关键字enum,不允许使用继承的extends关键字,因为所有的枚举类型都继承于Enum,但是可以使用implements实现接口
	春天、夏天、秋天、冬天;//每一个就是一个枚举值,允许获取的数据值,没有在这里出现的则是不允许使用的值。
	public static void main(String[] args){
		Season s = Season.春天;
		System,out.println(s.name());//获取对应的名称,例如MALE
		System.out.println(s.ordinal());//获取常量对应的序号,默认从0开始
	}
}

枚举类相关的方法

  • ordinal():int 获取索引号,索引号默认从0开始
  • name()/toString():String获取常量名
  • values():静态方法返回一个包含全部枚举值得数组
  • valueOf():valueOf(枚举类.class,“字符串”)
public enum Season{
	春天,夏天,秋天,冬天;
}
public class Test{
	public static void main(String[] args){
		Season obj1 = Season.春天;
		System.out.println("序号:"+obj1.ordinal());
		System.out.println("常量名称:"+obj1.name());
		Season[] choices = Season.values();//获取所有的预定义的常量对象
		for(Season tmp:choices)
		System.out.println(tmp);
		//将字符串类型转换为指定的枚举类型
		String ss = "夏天";
		Season obj2 = Season.valueOf(ss);//将字符串类型转换成指定的枚举类型
		System.out.println(obj2.ordinal());
	}
}

枚举类型带参构造器

public enum color{
	RED("红色",1),GREEN("绿色",2);
	
	private String name;
	private int index;
//枚举类只可以拥有私有的构造方法,在你定义枚举类的构造方法时,即使没有使用任何修饰符,它仍然是私有的,所以枚举类不能被外部类实例化,构造器是能在狗仔枚举时调用,类外不可访问
	private Color(String name,int index){
	//自定义构造器,则系统不再提供无参构造器,所以对应的枚举值必须符合构造器的规则
		this.name = name;
		this.index = index;
	}
}

枚举类型普通方法

public enum Color{
	RED("红色",1),GREEN("绿色",2),BLANK("白色",3),YELLO("黄色",4);
	
	private String name;
	private int index;
	private Color(String name,int index){
		this.name = name;
		this.index = index;
	}
	public static String getName(int index){
		for(Color c:Color.values()){
			if(c.getIndex() == index)
				return c.name;
		}
	}
	return null;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值