//方法lifter
package com.hushi.elevator;
public interface Lifter {
public void goUp();
public void goDown();
}
//类GoodElevator实现lifter方法
package com.hushi.elevator;
public class GoodElevator implements Lifter{
private boolean doorOpen;
private int floor;
private int weight;
final int CAPACITY=1000;; //电梯的最大重量
final int TOP_FLOOR = 5;; //电梯的最高层
final int BOTTOM_FLOOR = 1;;
public void GoodElevarot(){ //构造函数,初始化
doorOpen=false;
floor = 1;
weight = 0;
}
public void openDoor()
{
doorOpen = true;
}
public void closeDoor()
{
checkWeightSensors();
if(weight<=CAPACITY)
doorOpen = false;
else
System.out.println("超重,门不能关!");
}
private void checkWeightSensors()
{
weight = (int)(Math.random()*1500);
System.out.println("当前乘客总重量是:"+weight+"公斤");
}
@Override
public void goUp() {
// TODO Auto-generated method stub
if(!doorOpen)
{
if(floor<TOP_FLOOR)
{
floor++;
System.out.println("电梯已上到第"+floor+"层");
}
else
System.out.println("电梯已在顶层,不能再上升");
}
else
System.out.println("电梯门未关,不能上升!");
}
@Override
public void goDown() {
// TODO Auto-generated method stub
if(!doorOpen)
{
if(floor>BOTTOM_FLOOR)
{
floor--;
System.out.println("电梯已下到第"+floor+"层");
}
else
System.out.println("电梯已在最底层,不能再下降");
}
else
System.out.println("电梯门未关,不能下降!");
}
public void setFloor(int goal)
{
if(goal>=BOTTOM_FLOOR&&goal<=TOP_FLOOR)
{
while(floor!=goal)
{
if(floor<goal)
goUp();
else
goDown();
}
System.out.println("电梯按要求停在第"+goal+"层");
}
else
System.out.println("没有第"+goal+"层");
}
public int getFloor()
{
return floor;
}
public boolean isOpen()
{
return doorOpen;
}
}
//主函数的实现
package com.hushi.elevator;
public class TestGoodElevator {
public static void main(String args[])
{
System.out.println("-------电梯测试开始-------");
GoodElevator e2 = new GoodElevator();
e2.openDoor();
e2.closeDoor();
e2.goUp();
e2.goUp();
e2.goDown();
System.out.println("电梯在第"+e2.getFloor()+"层");
e2.openDoor();
e2.closeDoor();
e2.goDown();
e2.openDoor();
e2.closeDoor();
e2.goDown();
e2.goDown();
if(e2.getFloor()!=5&&!e2.isOpen())
e2.setFloor(5);
e2.openDoor();
e2.closeDoor();
e2.setFloor(10);
System.out.println("-------电梯测试结束-------");
}
}
运行结果如下所示:
-------电梯测试开始-------
当前乘客总重量是:371公斤
电梯已上到第1层
电梯已上到第2层
电梯已下到第1层
电梯在第1层
当前乘客总重量是:978公斤
电梯已在最底层,不能再下降
当前乘客总重量是:1463公斤
超重,门不能关!
电梯门未关,不能下降!
电梯门未关,不能下降!
当前乘客总重量是:76公斤
没有第10层
-------电梯测试结束-------