黑马程序员Java类之枚举(Enum)

原创 2012年03月28日 16:28:45

---------------------- android培训java培训、期待与您交流! ----------------------

 基础要点

1、枚举就相当于一个类,其中也可以定义构造方法、成员变量、普通方法和抽象方法

2、枚举元素必须位于枚举体中最开是的部分,枚举元素列表的后要有“;”与其他成员分隔。若把枚举中的变量或方法放在枚举元素前,编译器会报错。

3、如果枚举只有一个成员时,就可以作为一种单列的实现方式

例如视频中所讲的交通灯

package horse;
/**这是一个枚举类,是从交通灯视频里拆下来的内容
 */
public enum Light {
	//定义了三种颜色的灯:红黄绿,灯后括号里内容为等待的时间
	//若无括号也可以但就没有时间了
	RED(30){
		public Light getNext(){
			System.out.println("red");
			return GREEN;
		}
	},
	GREEN(35){
		public Light getNext(){
			System.out.println("green");
			return YELLOW;
		}
	},
	YELLOW(5){
		public Light getNext(){
			System.out.println("yellow");
			return RED;
		}
	};
	//定义等待的时间
	private int time;
	private Light(int time){
		this.time = time;
	}
	public abstract Light getNext();
}

在写是个枚举的时候我将等待的时间和成员方法放在了枚举前,编译器果然报错了

下面做一个类用于显示灯的效果

package horse;
/**创建一个函数用于显示enum的效果
 * @param args
 */
public class LightTest {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Light.RED.getNext().getNext().getNext();
	}
}

下面在做一个与上面不同的

先定义一个星期枚举

package horse;
public enum Week {
	/*创建的枚举元素必须在第一行,
	 *这里元素可以无括号,上面的交通灯有主要是因为要设状态
	*/
	SUN,MON,TUE,WEN,THT,FRI,SAT;
	//枚举的构造方法必须为私有
	private Week(){
		System.out.println();
	}
	private Week(int day){
		System.out.println();
	}
}

下面是实现形式

package horse;
public class WeekTest {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Week weekDay = Week.FRI;
		System.out.println(weekDay);
		//返回枚举常量的名称
		System.out.println(weekDay.name());
		System.out.println(Week.valueOf("SUN"));
		//创建枚举的一个数组用于输出这七个星期
		Week[] ws = Week.values();
		for(Week w : ws){
			System.out.println(w);
		}
	}
}

 ---------------------- android培训java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima

相关文章推荐

黑马程序员——JAVA笔记——枚举enum

------- android培训、java培训、期待与您交流! ---------- 枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。 下面...

黑马程序员--java的Enum枚举

学习笔记:      java的Enum枚举类型终于在j2se1.5出现了。之前觉得它只不过是鸡肋而已,可有可无。毕竟这么多年来,没有它,大家不都过得很好吗?今日看《Thinking in Java》...
  • whf769
  • whf769
  • 2011年06月10日 08:29
  • 354

黑马程序员--枚举类(enum)

----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------   通过下面的一个实例,可以了解枚举类的一些用法:  public e...

黑马程序员——46,enum枚举类的简单应用

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------   黑马程序员——46,enum枚举类的简单应用       一:枚举类-...

黑马程序员-->11_反射和枚举(Reflect & Enum)

----------- android培训、java培训、期待与您交流! -----------

黑马程序员--------------Enum 枚举

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 看了点东西,发现对java枚举不是很了解,然后就找找看看记记了。 为什么...
  • Maiuiie
  • Maiuiie
  • 2014年09月01日 00:27
  • 296

黑马程序员—JDK1.5新特性之枚举enum

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------...

黑马程序员————java中类的加载、反射、动态代理、枚举

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 类的加载、反射、动态代理、枚举 一.类的加载 当程序要使用某个类时,如果该...
  • lgplf
  • lgplf
  • 2015年06月19日 22:23
  • 532

黑马程序员_张孝祥_Java基础加强_枚举类

----------- android培训、java培训、期待与您交流! ------------   Java 5.0之前的枚举实现方法: 枚举是java 5 新特性。在java 5之前,并没...

黑马程序员—Java中的枚举类

------- android培训、java培训、期待与您交流! ----------   枚举:关键字enum     问题:对象的某个属性的值不能是任意的,必须为固定的一组取值其中的某一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员Java类之枚举(Enum)
举报原因:
原因补充:

(最多只允许输入30个字)