package question1;
/* 第一题
* 定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法,
* 例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯。
*
* 解题方式一
* 1.声明RED, GREEN, YELLO 3个枚举常量表示灯的状态
* 2.编写 getNextLamp()方法用以取得某个灯的下一个灯
* 3.由于只有3个灯,所以在逻辑处理方面在getNextLamp()
* 方法里面编写,只需要2次逻辑判断
*
* 优点:不存在额外的内存开销
* 缺点:运行时的效率略低
*/
public enum TrafficLamp_1
{
/*
* 交通灯的3种状态
*/
RED, GREEN, YELLO;
/**
* 取得当前灯的下一个灯
*/
public TrafficLamp_1 getNextLamp()
{
//判断当前灯是红灯吗,是就返回绿灯,
//否则在判断是绿灯吗,是就返回黄灯,
//否则返回红灯,到这肯定当前是黄灯
return (this == RED) ? GREEN : ((this == GREEN) ? YELLO : RED);
}
public static void main(String[] args)
{
//张老师的使用方法在内存方面会消耗的多一些
//效率方面由于需要valueOf(String name)
//方法来获得下一个灯的实例对象,所以也不是
//很好
//定义一个交通灯引用,用来保存当前的交通灯状态
TrafficLamp_1 current;
//初始为红灯
System.out.println((current = TrafficLamp_1.RED).name());
//打印当前灯的下一
交通灯实例的实现方式一 省内存版
最新推荐文章于 2023-11-16 22:35:44 发布
该博客介绍了如何使用Java枚举实现交通灯状态转换,包括红灯、绿灯、黄灯,并提供了getNextLamp()方法获取下一个灯的状态。此实现方式节省内存,但运行效率稍低。
摘要由CSDN通过智能技术生成