案例描述

网购已成为人们生活的重要组成部分,当人们在购物网站中下订单后,订单中的货物就会在经过一系列的流程后,送到客户的手中。而在送货期间,物流管理人员可以在系统中查看所有物品的物流信息。编写一个模拟物流快递系统的程序,模拟后台系统处理货物的过程。

(1)运输货物首先需要有交通工具,所以需要定义一个交通工具类。由于交通工具可能有很多,所以可以将该交通工具类(Transportation)定义成一个抽象类,类中需要包含该交通工具的编号(number),型号(model)以及运货负责人(admin)等属性,还需要定义一个抽象的运输方法(transport)。

(2)当运输完成后,需要对交通工具进行保养,所以需要定义保养(Careable)接口,具备交通工具的保养(upkeep)功能。

(3)交通工具可能有很多种,这里可以定义一个专用运输车类(Ztransportation),该类需要继承交通工具类,并实现保养接口。

(4)有了运输的交通工具后,就可以开始运送货物了。货物在运输前,运输时和运输后,都需要检查和记录,并且每一个快递都有快递单号,这时可以定义一个快递任务类(SendTask)包含快递单号和货物重量的属性,以及送前(sendBefore)、发送货物途中(send)和送后(sendAfter)的方法。

(5)在货物运输过程中,需要对运输车辆定位,以便随时跟踪货物的位置信息。定位功能可以使用GPS,而考虑到能够实现定位功能的设备可能有很多(如手机、专用定位仪器等),这时可以定义一个包含定位(showCoordinate)功能的GPS接口,以及实现了该接口的仪器类(如Phone等)。

(6)编写测试类,运行查看结果。

代码如下:

package test;public abstract class Transportation {private String number;private String model;private String admin;public Transportation() {super();// TODO Auto-generated constructor stub}public Transportation(String number, String model, String admin) {super();this.number = number;this.model = model;this.admin = admin;}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}public String getModel() {return model;}public void setModel(String model) {this.model = model;}public String getAdmin() {return admin;}public void setAdmin(String admin) {this.admin = admin;}public abstract void transport();}
package test;public interface Careable {public abstract void upKeep();
}
package test;public interface GPS {String showCoordinate();
}
package test;public class Phone implements GPS {public Phone() {super();}public String showCoordinate() {String location = "193,485";return location;}
}
package test;public class ZTransportation extends Transportation implements Careable{public  ZTransportation() {super();}public ZTransportation(String number, String model, String admin) {super(number, model, admin);}public void upKeep() {System.out.println("货物运输车已保养完毕!");}public void transport(){System.out.println("货物正在运送中......");}
}package test;public class SendTask {private String taskNo;private double weight;public SendTask() {super();// TODO Auto-generated constructor stub}public SendTask(String taskNo, double weight) {super();this.taskNo = taskNo;this.weight = weight;}public String getTaskNo() {return taskNo;}public void setTaskNo(String taskNo) {this.taskNo = taskNo;}public double getWeight() {return weight;}public void setWeight(double weight) {this.weight = weight;}public void sendBefore() {System.out.println("仓库验货中。。。");System.out.println("货物重量:"+this.weight+"kg");System.out.println("快递单号:"+this.taskNo);}public void send(Transportation t,GPS tool) {System.out.println("运货人"+t.getAdmin()+"驾驶编号为"+t.getNumber()+"的"+t.getModel()+"正在行驶中。");t. transport();String showCoordinate = tool.showCoordinate();System.out.println("坐标:"+tool.showCoordinate());}public void sendAfter(Transportation t) {System.out.println("货物运送结束...");System.out.println("运货人"+t.getAdmin()+"驾驶编号为"+t.getNumber()+"的"+t.getModel()+"已送货到达。");}
package test;public class Test{public static void main(String[] args) {SendTask task = new SendTask("HYX600235",76.34); ZTransportation t = new ZTransportation("Z025","大奔","小韩");Phone p = new Phone();//调用送货前task.sendBefore();System.out.println("=============================");//调用送货中task.send(t,p);System.out.println("=============================");//调用送货后task.sendAfter(t);t.upKeep();}}

运行结果如下:

接口与多态:模拟物流快递系统程序设计实验相关推荐

  1. 【java案例】:模拟物流快递系统程序设计

    文档下载链接:https://download.csdn.net/download/oxygen23333/86770543 案例题目:         模拟物流快递系统程序设计(面向对象的程序设计) ...

  2. java作业:模拟物流快递系统程序设计

    模拟物流快递系统程序设计 [案例介绍] 1. 案例描述 网购已成为人们生活的重要组成部分,当人们在购物网站中下订单后,订单中的货物就会在经过一系列的流程后,送到客户的手中.而在送货期间,物流管理人员可 ...

  3. [案例4-8]模拟物流快递系统程序设计

    案例描述: 网购已成为人们生活的重要组成部分,当人们在购物网站中下订单后,订单中的货物就会在经过一系列的流程后,送到客户的手中.而在送货期间,物流管理人员可以在系统中查看所有物品的物流信息.编写一个模 ...

  4. 【案例4-8】模拟物流快递系统程序设计

    案例描述 网购已成为人们生活的重要组成部分,当人们在购物网站中下订单后,订单中的货物就会在经过一系列的流程后,送到客户的手中.而在送货期间,物流管理人员可以在系统中查看所有物品的物流信息.编写一个模拟 ...

  5. Java实验6 --模拟物流快递系统程序设计

    前言 时间:2020.6.13 备注:Java实验6任务2.最后一更Java基础实验,明天要计网课设了,有时间再出其他内容滴~ 题目 实现思路 先设计一个Transportation的抽象父类,加载一 ...

  6. 模拟物流快递系统程序设计java_路辉物流设备:大件快递自动分拣系统的模块化设计...

    物流企业运营所需的能源.劳动力.土地价格持续上涨,依赖"高投入.低产出"传统物流运作模式难以为继,面临着降低成本.提高效率.可持续发展的转型要求.快递行业对于新兴的大件快递消费需求 ...

  7. 【Java案例】模拟物流快递系统程序设计

    案例介绍: 定义抽象的交通工具类: abstract class Transportation{//定义抽象的Transportation类private String number;//交通工具的编 ...

  8. 物流快递系统程序设计

    一.实验目的及要求: 1.学会分析"物流快递系统程序设计"程序任务实现的逻辑思维 2.能够独立完成物流快递系统程序的构思,编写和运行 3.理解类和对象的封装.继承以及多态的使用,并 ...

  9. 物流快递系统(java)

    编写一个模拟物流快递系统的程序,模拟后台系统处理货物的过程.定义一个抽象类Transportation,一个交通工具保养接口Careable,一个专用运输车类Ztransportation,快递任务类 ...

  10. Java模式设计卖电脑实验报告,面向对象(Java)实验0继承、接口和多态

    <面向对象(Java)实验0继承.接口和多态>由会员分享,可在线阅读,更多相关<面向对象(Java)实验0继承.接口和多态(11页珍藏版)>请在金锄头文库上搜索. 1.电子信息 ...

最新文章

  1. 企业级微服务框架落地
  2. 作业帮电脑版在线使用_在线K12赛道六虎争霸:猿辅导、作业帮又宣布新一轮融资...
  3. oralce 笔记
  4. android 圆角边框边框渐变,支持边框、圆角、渐变色、透明度的GradientButton
  5. python登录网页_Python如何爬取需要登录的页面
  6. mybatis基础,mybatis核心配置文件properties元素
  7. CSS3特效,跳动的心
  8. python struct pack_Python(12)教程11.标准库简介——第二部分
  9. CUHK Occlusion Dataset(行人检测数据集)转换为YOLO+VOC数据集
  10. 使用Aforge 开发的摄像头,有拍照,录像,设置帧率,分辨率等,以及对视频以及相机等的控制
  11. 预充电电路工作原理_变频器整流回路 为什么要预充电电路-工业支持中心-西门子中国...
  12. SeaweedFS介绍安装集群部署总结
  13. endnote找不到国标_实验差距惊人!揭秘雅迪高于新国标的品质标准测试
  14. channel使用法则
  15. 计划任务linux每天执行一次,linux 每天执行任务计划
  16. 华为内部访谈:凡是溜须拍马的员工,一律拿掉
  17. 【苦练基本功】代码整洁之道 pt1(第1章-第3章)
  18. 【Scratch-外观模块】背景切换指令
  19. 【JavaMap接口】HashMap源码解读实例
  20. 2022年 IoT 物联网平台发展趋势:私有化部署

热门文章

  1. Educational Codeforces Round 95 (Rated for Div. 2)C. Mortal Kombat Tower(状态机dp)
  2. 【11月18日截稿】【高校支持】第三届机器人、智能控制与人工智能国际学术会议-RICAI 2021...
  3. idea Lombok插件下载
  4. lan和adsl是什么信号_光纤、以太网、ADSL上网有什么区别?
  5. 百度API查询经纬度小页面
  6. Python实现抽签(团日活动抽倒霉蛋
  7. 【HNOI2013】切糕
  8. [LeetCode][沙雕氵]如何用LeetCode130写一个故事?
  9. 【数据分析】数据分析方法(一):5W2H 分析方法
  10. matlab 画qpsk眼图,MATLABQPSK在AWGN信道下的仿真