枚举

基本概念,多例和枚举

枚举从本质上讲,是多例的一种设计,观察如下代码,多例设计的结果和枚举返回结果是一样的

package com.wjx.sayHello;

//class Color{
//	private String title;
//	private static final Color RED=new Color("RED");
//	private static final Color GREEN=new Color("GREEN");
//	private static final Color BLUE=new Color("BLUE");
//	
//	private Color(String title){
//		this.title=title;
//	}
//	public String toString(){
//		return this.title;
//	}
//	public static Color getInstance(int ch){
//		switch(ch){
//		case 0:return RED;
//		case 1:return GREEN;
//		case 2:return BLUE;
//		default:return null;
//		}
//	}
//}
/***
 *下面是枚举类型和多例返回结果是一样的
 *本质上讲,枚举实际上就是一种多例设计的结果
 * @author LeoWang
 *
 */
enum Color{
	RED,GRREN,BLACK,LEO;
}
public class TestDemo {
	public static void main(String[] args){
		System.out.println(Color.RED);
		//System.out.println(Color.getInstance(0));
	}
	
}

Enum 类

本质上来讲,enum类相当于定义了一个class类继承了java.lang.Enum类的父类

构造方法:protected Enum(String name,int ordinal)

 取得枚举的名字:public final String name()

 取得枚举的序号:  public final String ordinal()

取得枚举所有数据values():

package com.wjx.sayHello;


enum Color{
	RED,GRREN,BLACK,LEO;
}
public class TestDemo {
	public static void main(String[] args){
		for(Color temp:Color.values()){
			System.out.println(temp.ordinal()+"==="+temp.name());
		}
			
	}
}
enum和Enum的区别?

  enum是一个关键字,使用 enum定义的一个枚举类就相当于继承了Enum这个抽象类而已。

定义枚举的其他结构

由于上面讲到枚举只是在枚举内部产生了若干对象,为了实现在内部可以有属性,方法,实现接口,可以定义枚举其他结构

package com.wjx.sayHello;

interface IColor{
	public String getColor();
}
enum Color implements IColor{
	RED("红色"),GRREN("绿色"),BLACK("褐色");// 如果枚举类定义中定义其他属性方法,必须写在第一行,如果没有无参构造吗,需要声明对象内容
	private String title;
	private Color(String title){
		this.title=title;
	}
	public String toString(){
		return this.title;
	}	
	@Override
	public String getColor() {
		// TODO Auto-generated method stub
		return this.title;
	}
}
public class TestDemo {
	public static void main(String[] args){
		IColor ic=Color.BLACK;
		System.out.println(ic.getColor());
			
	}
}



 取得枚举的名字
 取得枚举的名字
 取得枚举的名字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值