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

简介: Java模拟物流快递系统程序设计

任务描述

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

实现思路

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


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


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

实现

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


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


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


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


代码实现

交通工具抽象类

/*** * @author * 交通工具抽象类*/publicabstractclassVehicle {
privateStringnumber;
privateStringmodel;
privateStringadmin;
//构造方法publicVehicle() {
    }
publicVehicle(Stringnumber, Stringmodel, Stringadmin) {
super();
this.number=number;
this.model=model;
this.admin=admin;
    }
//送货方法publicabstractvoidvehicle();
//生成getter和setter方法publicStringgetNumber() {
returnnumber;
    }
publicvoidsetNumber(Stringnumber) {
this.number=number;
    }
publicStringgetModel() {
returnmodel;
    }
publicvoidsetModel(Stringmodel) {
this.model=model;
    }
publicStringgetAdmin() {
returnadmin;
    }
publicvoidsetAdmin(Stringadmin) {
this.admin=admin;
    }
}

专用交通工具子类

/*** * @author * 专用交通工具子类*/publicclassAVehicleextendsVehicle{
//构造方法publicAVehicle() {
super();
    }
publicAVehicle(Stringnumber, Stringmodel, Stringadmin) {
super(number, model, admin);
    }
//重写送货方法@Overridepublicvoidvehicle(){
System.out.println("货物正在运送中......");
    }
}

快递类

/*** * @author * 快递任务类*/publicclassExpressTask {
doubleweight; //货物重量Stringnumber;//快递单号//生成构造方法publicExpressTask() {  
    }
publicExpressTask(doubleweight, Stringnumber) {
super();
this.weight=weight;
this.number=number;
    }
//运送前方法publicvoidbefore() {
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);
    }
//实例化交通工具AVehicletool=newAVehicle("001","宾利","老马");
//运送中方法publicvoidsending() {
System.out.println("运货人:"+tool.getAdmin()+"\n"+"车辆型号:"+tool.getModel()+"\n"+"车辆编号:"+tool.getNumber());
tool.vehicle();
    }
//运送后方法publicvoidlater() {
System.out.println("货物运送结束...");
System.out.println("运货人"+tool.getAdmin()
+"所驾驶的编号为"+tool.getNumber()
+"的型号为"+tool.getModel()
+"的车已归还");
    }
}

测试类

/*** * @author * 快递测试类*/publicclasstest {
publicstaticvoidmain(String[] args) {
Scannerscanner=newScanner(System.in);
//创建快递任务ExpressTaskexpress=newExpressTask();
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();
    }
}

运行实例

20201013100133186.png

目录
相关文章
|
9月前
|
Java 编译器 API
Java 密封类:精细化控制继承关系
Java 密封类:精细化控制继承关系
453 83
|
7月前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
402 101
|
7月前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
346 100
|
8月前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
588 143
|
6月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
265 4
|
6月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
315 5
|
6月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
393 5
|
6月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
320 1
|
6月前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
455 1
下一篇
开通oss服务