CarModel.java
上传用户:hensond
上传日期:2021-12-27
资源大小:817k
文件大小:1k
源码类别:

软件工程

开发平台:

Java

  1. package com.company.section1;
  2. import java.util.ArrayList;
  3. /**
  4.  * @author cbf4Life cbf4life@126.com
  5.  * I'm glad to share my knowledge with you all.
  6.  * 定义一个车辆模型的抽象类,所有的车辆模型都继承这里类
  7.  */
  8. public abstract class CarModel {
  9. //这个参数是各个基本方法执行的顺序
  10. private ArrayList<String> sequence = new ArrayList<String>();
  11. /*
  12.  * 模型是启动开始跑了
  13.  */
  14. protected abstract void start();
  15. //能发动,那还要能停下来,那才是真本事
  16. protected abstract void stop();
  17. //喇叭会出声音,是滴滴叫,还是哔哔叫
  18. protected abstract void alarm();
  19. //引擎会轰隆隆的响,不响那是假的
  20. protected abstract void engineBoom();
  21. //那模型应该会跑吧,别管是人推的,还是电力驱动,总之要会跑
  22. final public void run() {
  23. //循环一边,谁在前,就先执行谁
  24. for(int i=0;i<this.sequence.size();i++){
  25. String actionName = this.sequence.get(i);
  26. if(actionName.equalsIgnoreCase("start")){  //如果是start关键字,
  27. this.start();  //开启汽车
  28. }else if(actionName.equalsIgnoreCase("stop")){ //如果是stop关键字
  29. this.stop(); //停止汽车   
  30. }else if(actionName.equalsIgnoreCase("alarm")){ //如果是alarm关键字
  31. this.alarm(); //喇叭开始叫了
  32. }else if(actionName.equalsIgnoreCase("engine boom")){  //如果是engine boom关键字
  33. this.engineBoom();  //引擎开始轰鸣
  34. }
  35. }
  36. }
  37. //把传递过来的值传递到类内
  38. final public void setSequence(ArrayList<String> sequence){
  39. this.sequence = sequence;
  40. }
  41. }