java枚举类使用总结

一.什么是枚举类 

创建实例数量有限并且固定的类,例如季节类,只有4个对象春,夏,秋,冬。这在java就叫作枚举类。

二.怎样定义枚举类

1.JDK1.5之前采用自定义枚举类,JDK1.5之后采用enum关键字

package cn.com.java300.enumtest;

public class Enumtest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Human MALE=Human.male;
		System.out.println(MALE.toString());
        
        //valueOf()方法,产生一个指定名称的类实例
		Human FEMALE=Enum.valueOf(Human.class,"female");
		System.out.println(FEMALE.toString());
        
        //values()方法:返回该枚举类的所有实例
        for(Human h:Human.vlues())
        {
                System.out.println(h);
        }
	}

}

enum Human{
	  male("男性", 100),
	  female("女性",99);
	
	   private final String name;
	   private final int age;
	   private  Human(String name,int age)
	 	{
	 		this.name=name;
	 		this.age=age;
	 	}
	   
	   public String toString()
	   {
		   return "name is"+this.name+"aver age is"+this.age;
	   }
}

2.需要注意的地方

a.枚举类可以实现一个或多个接口

b.使用enum定义,非抽象的枚举类默认会使用final修饰,因此枚举类不能派生子类

c.枚举类的构造器只能使用private访问控制符,如果未指定默认为private

d. 枚举类的所有实例必须在枚举类的第一行显示列出,否则这个枚举类永远不能产生实例。列出这些实例时,系统会自动添加public static final修饰,无需显示添加。   

e.枚举类通常应该设计成不可变类,也就是说它的实例变量值不应该允许改变,这样会更安全,所以通常枚举类的实例变量都用private final修饰,然后在初始化枚举值时使用构造器为实例变量指定初始值。   

3.常用方法

a.values(),valueOf()

值得注意的是对于声明为 enum 的类型,编译器会自动生成 一个继承 java.lang.Enum 的类,并且生成 valueOf ()和 values() 方法。

values()返回该枚举类的所有实例 

valueOf ()产生该枚举类指定名称的类实例

可以参看http://www.oschina.net/question/869170_79647?sort=default&p=2

b.name()和toString()

两个都是返回枚举常量的名称,但是toString()更常用。

c.int ordinal() 

返回枚举值在枚举类中的索引值(就是枚举值在枚举声明中的位置,第一个枚举值的索引值为0)

三.如何让枚举类实现接口

可以让不同枚举类的对象调用被重复的抽象方法,执行的效果因对象不同而不同。
例子:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值