java定义一个盒子类box_怎么用JAVA实现这个盒子

这个Java程序定义了一个`TestBox`类,用于控制两个灯泡的状态。类中包含了打开电源、按不同按钮改变灯泡状态、显示灯泡状态、砸烂灯泡和修复灯泡等功能。每个灯泡的状态由`Light`类表示,可以是开启、关闭、闪烁或损坏。程序通过一系列方法调用来模拟灯泡的操作逻辑。
摘要由CSDN通过智能技术生成

Java code//保存为TestBox.java

//测试类

public class TestBox{

public static void main(String[] args){

Box box = new Box();

box.b1(); //打开电源

box.b2();//按b2 (对应L1)

box.b3(); //按b3 (对应L2)

box.b3(); //按b3 (对应L2)

box.showL1L2Status();

box.brokenLight1(); //砸烂L1

box.showL1L2Status();//显示2个灯的状态

box.b4(); //关灯

box.showL1L2Status(); //显示2个灯的状态

box.b1(); //再开灯

box.showL1L2Status(); //显示2个灯的状态

box.repairLight(); //关灯,修理灯

box.showL1L2Status(); //显示2个灯的状态

box.b1(); //修理后重新打开电源

box.b2();

box.showL1L2Status();

}

}

//盒子类

class Box {

private boolean power = false;//电源

private Light l1 = new Light();//电灯一

private Light l2 = new Light();//电灯二

public void b1(){ //开打电源

power = true;

l1.setCount(0); //每次重开电源,重新计算L1,L2被按的次数

l2.setCount(0);

}

public void b2(){ //按b2按钮,对应L1

if( !power){ //如果电源没开,不响应,

return;

}

else{

this.l1.AddCount();

//System.out.println("l2:" + l1.getCount());

if( !checkBroken()){ //只有灯没坏时才响应

int light1Count = l1.getCount();

int light2Count = l2.getCount();

if( light1Count > light2Count){

l1.setStatus("light");

l2.setStatus("unlight");

}

else {if ( light2Count > light1Count){

l2.setStatus("light");

l2.setStatus("unlight");

}

else {

l1.setStatus("unlight");

l2.setStatus("unlight");

}}

}//if(!checkBroken)

else{ //灯坏了,就不响应

if( l1.getStatus().equals("broken")){

l2.setStatus("glimpse");

}

else{

l1.setStatus("glimpse");

}

}// checkBroken else

}

}

public void b3(){ //参照b2的注释

if( !power){

return;

}

else{

this.l2.AddCount();

//System.out.println("l2:" + l2.getCount());

if( !checkBroken()){

int light1Count = l1.getCount();

int light2Count = l2.getCount();

if( light1Count > light2Count){

l1.setStatus("light");

l2.setStatus("unlight");

}

else{ if ( light2Count > light1Count){

l2.setStatus("light");

l1.setStatus("unlight");

}

else {

l1.setStatus("unlight");

l2.setStatus("unlight");

} }

}//if(!checkBroken)

else{

if( l1.getStatus().equals("broken")){

l2.setStatus("glimpse");

}

else{

l1.setStatus("glimpse");

}

}// checkBroken else

}

}

public void b4(){ //关电源

power = false;

//没坏的话,就设置灯为关闭状态,否则保持原来的状态

if ( (!this.l1.getStatus().equals("broken"))

&&(!this.l2.getStatus().equals("broken"))){

l1.setStatus("unlight");

l2.setStatus("unlight");

}

}

//关灯,并将坏的灯泡休息好

public void repairLight(){

System.out.println("操作:关电灯,修理");

b4();

l1.setStatus("unlight");

l2.setStatus("unlight");

}

//将L1砸烂

public void brokenLight1(){

l1.setStatus("broken");

l2.setStatus("glimpse");

}

//将L2砸烂

public void brokenLight2(){

l2.setStatus("broken");

l1.setStatus("glimpse");

}

//显示目前灯的状态

public void showL1L2Status(){

if(power){

System.out.println("L1的状态:" + l1.getStatus());

System.out.println("L2的状态:" + l2.getStatus());

}

else{

System.out.println("L1的状态:unlight");

System.out.println("L2的状态:unlight");

}

}

//检查是否有灯坏了,有的话返回true,否则返回false

public boolean checkBroken(){

boolean flag = false;

if( l1.getStatus().equals("broken") || l2.getStatus().equals("broken")){

flag = true;

}

return flag;

}

}

//灯泡类

class Light{

private String status = "unlight";//状态,从unlight light glimpse broken中选一个

private int count = 0;

//被按下按钮的次数+1

public void AddCount(){

this.count++;

}

//取得被按下的次数

public int getCount(){

return this.count;

}

//设置被按下的次数

public void setCount(int count){

this.count = count;

}

//取得灯泡的状态

public String getStatus(){

return this.status;

}

//设置灯泡的状态

public void setStatus(String status){

this.status = status;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值