4.Elevator类[code=java]package cn.zjc.test.elevator;
import java.util.HashMap;
/**
* 这是一个电梯类
* */
public class Elevator implements Runnable {
private String name = null; //电梯的名称
private boolean isStart = false; //是否开始运行
private boolean isStop = false; //是否停止运行
public static final int MAX_WIEGH = 1500; //最大承载重量
private int presentWiegh; //当前所承载的重量
private int presentLayer = 1; //当前所在的楼层
private int presentDirection = 0; //当前运行的方向
//以下四个集合用做记录需要服务的楼层相关信息
private HashMap<Integer, String> upElevatorYes; //向上 顺道
private HashMap<Integer, String> upElevatorNo; //向上 不顺道
private HashMap<Integer, String> downElevatorYes; //向下 顺道
private HashMap<Integer, String> downElevatorNo; //向下 不顺道
/**
* 构造函数
* */
public Elevator(){ }
/**
* 构造函数
* @param String name
* */
public Elevator(String name){
this.name = name;
}
/**
* 开启电梯
* */
public boolean start(){
System.out.println("设置开始");
boolean boo = false;
boo = connectPower(); //接通电梯的电源
this.isStart = true;
this.isStop = false;
return boo;
}
/**
* 关闭电梯
* */
public boolean stop(){
System.out.println("设置停止");
boolean boo = false;
boo = resetPower(); //断开电梯的电源
this.isStop = true;
this.isStart = false;
return boo;
}
/**
* 接通电源
* */
public boolean connectPower(){
//假设电源已经没有问题
return true;
}
/**
* 关闭电源
* */
public boolean resetPower(){
//假设电源已经成功关闭掉了
return true;
}
/**
* 电梯设置为开启状态
* */
public void setIsStart(){
System.out.println("设置开始");
this.isStart = true;
this.isStop = false;
}
/**
* 获得电梯是否为开启状态
* */
public boolean getIsStart(){
return isStart;
}
/**
* 电梯设置为停止状态
* */
public void setIsStop(){
System.out.println("设置停止");
this.isStop = true;
this.isStart = false;
}
/**
* 获得电梯是否为停止状态
* @return boolean
* */
public boolean getIsStop(){
return isStop;
}
/**
* 打开电梯门
* */
public boolean open(){
boolean boo = false;
return boo;
}
/**
* 关闭电梯门
* */
public boolean close(){
boolean boo = false;
return boo;
}
/**
* 判断电梯是否为打开状态
* */
public boolean isOpen(){
boolean boo = false;
return boo;
}
/**
* 判断电梯是否为打开状态
* */
public boolean isClosed(){
boolean boo = false;
return boo;
}
/**
* 获得当前电梯所在的层数
* */
public int getPresent(){
return presentLayer;
}
/**
* 设置电梯的名称
* */
public void setName(String name){
this.name = name;
}
/**
* 获得电梯的名称
* */
public String getName(){
return name;
}
/**
* 设置当前电梯承载的重量
* */
public void setPresentWiegh(int presentWiegh){
this.presentWiegh = presentWiegh;
}
/**
* 获得当前电梯承载的重量
* */
public int getPresentWiegh(){
return presentWiegh;
}
/**
* 设置当前电梯运行的方向
* */
public void setPresentDirection(int presentDirection){
this.presentDirection = presentDirection;
}
/**
* 获得当前电梯运行的方向
* */
public int getPresentDirection(){
return presentDirection;
}
/**
* 操作记录信息的集合,根据方向、是否顺道 将请求服务的楼层存入相应的集合中
* @param layer :楼层
* @param index :标识 0.上 1.下
*
*
* */
public boolean setElevator(int layer,int index){
boolean boo = false;
/*
* 1.判断是否超重
* 2.判断是否顺道
*
* */
return boo;
}
/**
* 如果当前重量与规定重量之间相差小于 50kg 的时候,在此期间,电梯将不在提供继续为其他顺道的乘客提供服务
* 并且通知顺道的乘客,目前为满载状态,需要等待
*/
public boolean isOverLoad(){
boolean boo = false;
//如果超重 boo = true
return boo;
}
//打开电梯 ,在本次关闭上电梯门之前需要检查是否超重
public void setOpen(){
}
//关闭电梯 ,
public void setClose(){
}
/**
* 线程运行方法
* */
public void run() {
System.out.println("Elevator run invoke!");
while(true){
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if(isStart){
System.out.println("正在启动着");
upElevatorYes = new HashMap<Integer, String>();
upElevatorNo = new HashMap<Integer, String>();
downElevatorYes = new HashMap<Integer, String>();
downElevatorNo = new HashMap<Integer, String>();
}
else
return;
}
}
/**
* 向上
* @param index(int):楼层
* */
public boolean up(int index){
boolean boo = false;
return boo;
}
/**
* 向下
* @param index(int):楼层
* */
public boolean down(int index){
boolean boo = false;
return boo;
}
}[/code]
由于字数受限,请继续浏览(三) |