/**
* @Description: 台灯设计 按一次开 按两次提高亮度 按第三次关闭
* @Author: GZK0329
* @Date: 2021/5/31
**/
public class Lamp {
//台灯目前状态 初始为关闭状态
private Boolean isOpen = false;
//按开关键次数统计 按一次开 按两次提高亮度 按第三次关闭
private int clickCount = 0;
//亮度统计 0 关闭 1 亮度一级 2 亮度二级
private int brightness = 0;
public Lamp() {
}
public void click() {
clickCount++;
clickCount %= 3;
switch (clickCount) {
case 0:
close();break;
case 1:
open();break;
case 2:
lightBoost();break;
default:
return;
}
}
private void lightBoost() {
//亮度增加 0 关闭 1 亮度一级 2 亮度二级
brightness++;
brightness %= 3;
System.out.println("亮度提升!,当前亮度为:" + brightness + "当前台灯是否开启"+ isOpen);
}
public void open() {
if (isOpen == false) {
isOpen = true;
lightBoost();
System.out.println("台灯当前处于关闭状态,现已开启台灯。");
}else{
return;
}
}
public void close() {
if (isOpen == true) {
isOpen = false;
System.out.println("台灯当前处于开启状态,现已关闭台灯。");
brightness = 0;
clickCount = 0;
}else{
return;
}
}
public Boolean getIsOpen() {
return isOpen;
}
public void setIsOpen(Boolean isOpen) {
this.isOpen = isOpen;
}
public int getClickCount() {
return clickCount;
}
public void setClickCount(int clickCount) {
this.clickCount = clickCount;
}
public int getBrightness() {
return brightness;
}
public void setBrightness(int brightness) {
this.brightness = brightness;
}
}
1
gzk329 OP 代码我测试过了 主要是有没有设计纰漏?
|
2
falsemask 2021-05-31 17:53:02 +08:00
为什么 open close 方法的 else 没有空格缩进。boolean 类型变量取名不建议加 is 前缀。可以把你的代码放进 idea,会有好几处修改建议
|
3
TomVista 2021-05-31 17:53:04 +08:00
brightness%3 ; clickCount %= 3;
考虑是个灯,换成 if(a=0){a=1} if(a=1){a=2} if(a=2){a=0} 会更好 |
4
hxsf 2021-05-31 19:07:19 +08:00
按两次提高亮度 是 %2 还是 双击?
%2 感觉有点违背常识啊。。。想调亮度得开关开关绕一圈啊。 |