java 电梯

原创 2018年04月17日 13:40:30
import java.util.Scanner;
interface State{
     void handle();
     void up();
     void down();
     void open();
     void close();
     void warning();
     void removeWarning();
} 

class OpenState implements State{
	Context context=new Context();
    public void handle(){
       System.out.println("电梯门打开中");
    }
    public void up() {
    	System.out.println("电梯门开启中不可移动");
    }
    public void down() {
    	System.out.println("电梯门开启中不可移动");
    }
    public void open() {
    }
    public void close() {
       System.out.println("电梯门关上了");
       context.setState(new CloseState());
    }
    public void warning() {
    	System.out.println("超重警告");
    	context.setState(new WarningState());
    }
    public void removeWarning() {
    	
    }

}   
class CloseState implements State{
	Context context=new Context();
    public void handle(){
       System.out.println("电梯门关闭中");
    }
    public void up() {
       System.out.println("电梯上升了");
       open();
    }
    public void down() {
    	System.out.println("电梯下降了");
    	open();
    }
    public void open() {
    	System.out.println("开门");
    	context.setState(new OpenState());
    }
    public void close() {
    	
    }
    public void warning() {
    	
    }
    public void removeWarning() {
    	
    }
} 
class WarningState implements State{
	Context context=new Context();
    public void handle(){
        System.out.println("电梯超重中");
     }
     public void up() {
        System.out.println("超重中不允许移动");
     }
     public void down() {
     	System.out.println("超重中不允许移动");  	
     }
     public void open() {

     }
     public void close() {
     	System.out.println("超重状态中不允许关门");
     }
     public void warning() {
     	
     } 
     public void removeWarning() {
        System.out.println("解除了警报状态,进入开门状态");
        context.setState(new OpenState());
     }
}


class Context{
    private State state;
    //1开启  2关闭 3上升 4下降  5超重 6解除超重  -1结束  
	void fun() {
    int i=0;
	while(i!=-1) {
		Scanner scanner = new Scanner(System.in);
		i=scanner.nextInt();
		switch(i) {
		case 1:state.open();break;
		case 2:state.close();break;
		case 3:state.up();break;
		case 4:state.down();break;
		case 5:state.warning();break;
		case 6:state.removeWarning();break;
		}
	}
	System.exit(0);
}	
	public void setState(State  s ){
       System.out.println("电梯状态已被修改");
        state = s;
        state.handle();
        fun();
   } 
}

public class Client {
	 public static void main(String[] args) {
	        Context context=new Context();
	         context.setState(new OpenState());   //初始默认门打开
	  
	 }
}	        	         


JAVA小程序开发之模拟电梯APP (源码详解)

我的程序 import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.awt.eve...
  • wsyangzuda
  • wsyangzuda
  • 2014-01-05 23:18:02
  • 4151

java模拟电梯运行,swing界面

每次只能一个人,,,功能不全               import javax.swing.*; import java.awt.*; import java.util.*; public cl...
  • zwyjg
  • zwyjg
  • 2012-05-20 05:08:52
  • 4334

用java做的电梯程序

  • 2010年02月05日 01:04
  • 10KB
  • 下载

java实现电梯管理的方法(源程序)

//方法lifter package com.hushi.elevator; public interface Lifter { public void goUp(); public void g...
  • liunian02050328
  • liunian02050328
  • 2012-06-29 09:26:04
  • 5716

编程之美--小飞--电梯调度算法 java实现

public class AptElevator {          /**       * 编程之美 小飞 电梯调度算法       * 在繁忙的时间,每次电梯从一层往上走时,我们只允许电...
  • qiangzi9009
  • qiangzi9009
  • 2013-10-05 11:15:31
  • 3441

java 多线程 模拟一台电梯的工作状态

package 电梯03; /* 单线程电梯(1台电梯运行,10层)模拟: * Stack 表示电梯所能装载的人数 * 下面两个链表表示每层楼对应的人 0未启用 * LinkList[] ...
  • Sun_Ru
  • Sun_Ru
  • 2016-08-14 16:41:58
  • 2042

java 多线程协作 模拟四台电梯的工作状态并统计每层上下楼人数和输出上下楼日志到文件

模拟四台电梯的工作状态 package 电梯03; /* 单线程电梯(1台电梯运行,10层)模拟: * Stack 表示电梯所能装载的人数 * 下面两个链表表示每层楼对应的人 0未启用 ...
  • Sun_Ru
  • Sun_Ru
  • 2016-08-16 23:39:17
  • 1472

java实现的电梯模拟系统

  • 2013年12月04日 19:57
  • 452KB
  • 下载

java项目实践之模拟电梯系统Java源码.

  • 2016年07月19日 16:53
  • 74KB
  • 下载

电梯调度算法(java实现)

  • 2009年11月10日 18:16
  • 24KB
  • 下载
收藏助手
不良信息举报
您举报文章:java 电梯
举报原因:
原因补充:

(最多只允许输入30个字)