Java模拟物流快递系统程序设计(此题仅仅实现类的继承与多态,后续增加接口部分)

任务描述

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

实现思路

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

交通工具有很多种,可以定义一个专用的运输车类,该类继承交通工具类。

有了运输工具后,就可以运送货物了,货物在运输前,运输时和运输后,都需要检查和记录,并且每一个快递都有快递单号,可以定义一个快递任务类,包含快递单号和货物重量的属性及货物发送前,发送途中和送到后得方法。

实现

定义工具类:此类定义为抽象的,包含车辆编号、车辆型号、运货负责人等属性、以及其各自get 和set 方法,同时定义一个抽象的运输方法。

定义专用运输车类。该类继承交通工具类(可多定义几种运输车类:大货车,小货车)。

定义快递任务类该类包含快递单号,货物重量属性,送前准备方法(显示订单开始处理,仓库验货中;货物重量信息,货物检验完毕,货物填装完毕,运货人已通知,快递单号信息);发送货物(显示运货人信息,位置暂时可以自定增加接口后自动获取);送后操作(显示货物运送任务结束,运货人所驾驶的编号为。。。的型号为。。。的车已经归还);定义设置,获取快递单号的方法及货物重量的方法。

定义测试类,实例化对象并传入数据,测试运行。

代码实现

交通工具抽象类

/**
 * 
 * @author 
 * 交通工具抽象类
 */
public abstract class Vehicle {
    private String number;
    private String model;
    private String admin;
    //构造方法
    public Vehicle() {
    	
    }
	public Vehicle(String number, String model, String admin) {
		super();
		this.number = number;
		this.model = model;
		this.admin = admin;
	}
	
	//送货方法
	public abstract void vehicle();
	
	//生成getter和setter方法
	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;
	}
    
    
}

专用交通工具子类

/**
 * 
 * @author 
 * 专用交通工具子类
 */
public class AVehicle extends Vehicle{
    
	//构造方法
	public AVehicle() {
		super();
	}

	public AVehicle(String number, String model, String admin) {
		super(number, model, admin);
	}
	
    //重写送货方法
	@Override
	public void vehicle(){
		System.out.println("货物正在运送中......");
	}
}

快递类

/**
 * 
 * @author 
 * 快递任务类
 */
public  class ExpressTask {
    double weight; //货物重量
    String number;//快递单号
    
    //生成构造方法
    public ExpressTask() { 	
    }
    public ExpressTask(double weight, String number) {
		super();
		this.weight = weight;
		this.number = number;
	}
	
	//运送前方法
    public void before() {
    	System.out.println("订单开始处理...");
    	System.out.println("仓库验货中...");
    	System.out.println("货物重量:"+this.weight+"kg");
    	System.out.println("货物检验完毕...");
    	System.out.println("货物填装完毕...");
    	System.out.println("正在随机分配运货人...");
    	System.out.println("运货人已通知...");
    	System.out.println("快递单号:"+this.number);
    }
    
    //实例化交通工具
    AVehicle tool = new AVehicle("001","宾利","老马");
    
    //运送中方法
    public void sending() {
    	
    	System.out.println("运货人:"+ tool.getAdmin()+"\n"
                           +"车辆型号:"+tool.getModel()+"\n"
    			           +"车辆编号:"+tool.getNumber());
    	tool.vehicle();
    }
    
    //运送后方法
    public void later() {
    	System.out.println("货物运送结束...");
    	System.out.println("运货人"+tool.getAdmin()
    	                  +"所驾驶的编号为"+tool.getNumber()
    	                  +"的型号为"+tool.getModel()
    	                  +"的车已归还");
    }
}

测试类

/**
 * 
 * @author 
 * 快递测试类
 */
public class test {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		//创建快递任务
		ExpressTask express = new ExpressTask();
		
		System.out.println("正在创建快递任务...");
		System.out.println("请输入快递重量(kg):");
		express.weight = scanner.nextDouble();
		System.out.println("请输入快递单号:");
		express.number = scanner.next();
		System.out.println("订单创建成功...");
		
		//调用送货前
        express.before();
        System.out.println("=============================");
        //调用送货中
        
        express.sending();
        System.out.println("=============================");
        //调用送货后
        express.later();
	}

}

运行实例

在这里插入图片描述

学生实训任务单 5-2 【作业 5-4】 物流快递系统程序设计 当人们在购物网站下单后, 订单货物通过快递送达客户手,分析快递 系统完成的任务,包含这样几个实体:交通工具、快递任务、货物定位。下面依 次设计相关接口实现:输出送货前、送货、送货后的交通工具、送货人、 快递单号、定位地址等信息。 1. 在物流快递系统,首先需要定义运输货物的交通工具 Transportation.java。 (1)由于交通工具可能有很多种,所以,将交通工具定义为一个抽象。 (2)Transportation.java 需要定义 交通工具编号 number、型 model、运货负责人 admin 三个成员变量,用于存储交通工具的编号、型和 负责人信息。 (3)定义交通工具抽象的无参构造和给 3 个成员变量初始化的构造方法。 (4)创建 3 个成员变量的 get/set 方法。 (5)定义一个抽象的运输方法 tarnsport()。 2. 交通工具需要进行保养,定义一个交通工具保养接口 Careable.java,该 接口包含车辆保养的方法 upKeep()。 (提示:接口的方法原则上默认为抽 象方法)。 3. 定义一个专用运输车 Ztransportatin.java。 (1)专用运输车 Ztransportatin.java继承交通工具,并实现保养 接口。 (2)定义专用运输车辆的无参构造和 3 个参数的构造(这里 3 个参数,是从 父继承的)。 (3)实现的抽象方法 transport(),输出"运输进行…"语句。 (4) 实现接口Careable.java的抽象方法upKeep(), 输出 "车辆保养完毕! " 信息。 4. 在货物运输,需要对运输车辆定位,以便随时跟随货物的位置信息。定位 功能可以使用 GPS,而考虑到能够实现定位功能的设备可能有很多,例如手机, 定位仪等,可以定义 GPS 接口,以及实现了该接口的仪器。 (1) 定义 GPS 接口, 该接口仅仅包含一个显示定位坐标的方法 showPoint()。 (提示:接口的方法都是抽象方法)。 5. 定义 GPS 接口实现 Phone.java,拥有定位功能。 (1)定义 Phone.java 的无参构造。 (2) 重写定位方法 showPoint(), 返回定位坐标字符串, 例如: "123,456" . 6. 物流快递系统快递是一个实体,因此,需要定义快递任务,包含快递 单号和货物重量的属性,以及货物发送前、发送途和送到后的方法。 (1)定义快递任务 SendTask.java,包含快递单号 number、货物重量 goodsWeight 三个成员变量。 (2)定义无参构造和给 2 个成员变量初始化的构造方法。 (3)货物在运输前、运输时和运输后,都需要检查和记录,因此,需要定义 3 个方法。 送货前的准备方法: sendBefore(), 无参, 输出文字信息, 以及货物重量、 快递单号等信息。输出如下图所示。 发送货物方法:send(),2 个参数,抽象 Transportation 变量,接 口 GPS 变量,分别接收交通工具对象和定位坐标;实现输出运货人、交通工 具编号、交通工具型信息。输出效果如下图所示。 送货后操作方法:sendAfter(),1 个参数,以抽象 Transportation 变量为参数,接收交通工具对象。输出效果如下图所示。 7. 定义测试,实例化对象并传入数据,测试运行结果。 (1)创建快递任务对象,并初始化。 (2)通过快递任务变量,访问 sendBefore()方法,输出快递送货前准备工 作。 (3)创建专用交通工具对象,并初始化为: "Z205" "大卡车" "秦承斌"。 (4)创建手机对象。 (5) 通过快递任务变量, 访问 send ()方法, 以创建的专用交通工具对象、 手机对象为实参,输出快递送货信息。 (6)通过快递任务变量,访问 sendAfter()方法,输出送货后信息。 输出总效果如下图所示。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@赵士杰

如果对你有用,可以进行打赏,感

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值