(黑马程序员)学习笔记,枚举

来看一下java中新加入的枚举都有哪些特点:

package HeiMa;

import org.junit.Test;

public class Heima_01 {
	
	@Test
	//测试交通灯枚举
	public void testLight(){
		//比如当前是红灯,获取下一个灯
		String nextLight = Light.GREEN.getNext();
		System.out.println(nextLight);
		
		Light2 nextLight2 = Light2.GREEN.getNext();
		System.out.println(nextLight);
	}
	
	@Test
	//简单的枚举测试
	public void testWeekDay(){
		WeekDay w = WeekDay.FRI;
		System.out.println(w);
		System.out.println(w.name());
		System.out.println(w.ordinal());
		System.out.println(w.toString());
		System.out.println(w.valueOf("SUN").toString());
		System.out.println(w.values().length);
	}
}
/*
 * 简单的枚举
 * 用于规定某个类型的取值,只能为若干个固定值中的一个,否则编译出错
 * 
 * 1. 私有的构造方法
 * 2. 每个元素都是一个公有的静态成员变量
 * 3. 可以有抽象方法或公有方法
 */
enum WeekDay{
	SUN,MON,TUE,WED,THI,FRI,SAT;
	//枚举的构造方法必须私有
	private WeekDay(){}
	private WeekDay(int day){}
}
/*
 * 定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法;
 * 如:红灯的下一个灯是绿灯,绿灯的下一个灯是黄灯
 */
enum Light{
	//枚举的元素后边跟着的()中的内容,表明会调用private Light(String s){}构造方法
	RED("GREEN"),GREEN("YELLOW"),YELLOW("RED");
	private String s;
	//这里参数String s,就是枚举元素的()中的内容
	private Light(String s){
		this.s = s;
	}
	public String getValue(){
		return this.toString();
	}
	public String getNext(){
		return this.s;
	}
}
/*
 * 交通灯枚举也可以这样定义
 */
enum Light2{
	//枚举的元素后边用{}中的内容,实现定义的抽象方法
	RED{
		public Light2 getNext(){
			return GREEN;
		}
	},
	GREEN{
		public Light2 getNext(){
			return YELLOW;
		}
	},
	YELLOW{
		public Light2 getNext(){
			return RED;
		}
	};
	private Light2(){}
	//这里定义一个抽象方法,用于获取下一个灯
	public abstract Light2 getNext();
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值