当前位置: 首页 > news >正文

PTA-6-45 工厂设计模式-运输工具

题目如下:        

工厂类用于根据客户提交的需求生产产品(火车、汽车或拖拉机)。火车类有两个子类属性:车次和节数。拖拉机类有1个子类方法耕地,方法只需简单输出“拖拉机在耕地”。为了简化程序设计,所有类的运输方法只需显示“。。。开始进行货物运输。”

需要编写Motor接口的子类:

三个子类Train、Car和Tractor,实现接口Motor,并覆写transport()方法。

需要编写工厂类Factory:

设计一个工厂类Factory,包含一个createMotor(String name)方法,此方法返回值为接口Motor的子类实例对象。

已有的车接口定义如下:

interface Motor
{public static float power=100;public static float carrier=100;public void transport();
}

已有的Main类定义:

/* 请在这里填写答案 */public class Main
{public static void main(String args[]){     Scanner scan=new Scanner(System.in);String name;name=scan.next();Motor m=Factory.createMotor(name);if(m==null)System.out.println("没有此类车。");elsem.transport();}
}

根据题目要求,代码实现如下:

class Train implements Motor {int number;int pitch;@Overridepublic void transport() {System.out.println("车次为30,节数为:20的火车开始进行货物运输。");}	
}class Car implements Motor {@Overridepublic void transport() {System.out.println("汽车开始进行货物运输。");}	
}class Tractor implements Motor {public void work() {System.out.println("拖拉机在耕地");}@Overridepublic void transport() {work();System.out.println("拖拉机开始进行货物运输。");}	
}class Factory {public static Motor createMotor(String name) {if(name.equalsIgnoreCase("火车"))return new Train();else if(name.equalsIgnoreCase("汽车"))return new Car();else if(name.equalsIgnoreCase("拖拉机"))return new Tractor();elsereturn null;}
}

以上就是 PTA-6-45 工厂设计模式-运输工具 的全部内容了,希望能对你有所帮助!

http://www.lryc.cn/news/241005.html

相关文章:

  • 重新使用hbase前
  • Web 自动化神器 TestCafe(二)—元素定位篇
  • DRF-通用分页器(PageNumberPagination):ListModelMixin可以使用的通用分页器
  • 移动机器人,开启智能柔性制造新篇章
  • 视频云存储EasyCVR平台国标接入获取通道设备未回复是什么原因?该如何解决?
  • 【Web题】狼追兔问题
  • 4-Docker命令之docker info
  • QT 中的元对象系统
  • 在两个java项目中实现Redis的发布订阅模式
  • 执行shell脚本提示syntax error: unexpected end of file
  • 信也科技发布2023年Q3财报:数字金融服务业务增长稳健,持续拉动实体消费
  • Springcloud可视化物联网智慧工地云SaaS平台源码 支持二开和私有化部署
  • 51单片机应用从零开始(七)·循环语句(if语句,swtich语句)
  • Web服务器(go net/http) 处理Get、Post请求
  • Unity中颜色空间Gamma与Linear
  • Word/PPT/PDF怎么免费转为JPG图片?
  • 使用docker命令_进入容器_登录mysql服务_并执行sql语句---Docker工作笔记005
  • PMP 考试的含金量怎么样?
  • 2023亚太杯数学建模A题思路代码分析
  • Qt实现自定义IP地址输入控件(百分百还原Windows 10网络地址输入框)
  • Linux下的C++ socket编程实例
  • 4.常见面试题--操作系统
  • YOLOv8训练自己的目标检测数据集
  • 代码随想录算法训练营第三十二天| 122 买卖股票的最佳时机 || 55 跳跃游戏 45 跳跃游戏 ||
  • 聚类笔记/sklearn笔记:Affinity Propagation亲和力传播
  • Linux常用操作 Vim一般使用 SSH介绍 SSH密钥登录
  • Hadoop技术与应用的习题
  • 4.4 抗锯齿
  • vue-router 路由权限,路由导航守卫
  • 2022最新版-李宏毅机器学习深度学习课程-P49 GPT的野望