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

目录
相关文章
|
18天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
41 17
|
10天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
14天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
54 4
|
15天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
33 2
|
3月前
|
Java 开发者
奇迹时刻!探索 Java 多线程的奇幻之旅:Thread 类和 Runnable 接口的惊人对决
【8月更文挑战第13天】Java的多线程特性能显著提升程序性能与响应性。本文通过示例代码详细解析了两种核心实现方式:Thread类与Runnable接口。Thread类适用于简单场景,直接定义线程行为;Runnable接口则更适合复杂的项目结构,尤其在需要继承其他类时,能保持代码的清晰与模块化。理解两者差异有助于开发者在实际应用中做出合理选择,构建高效稳定的多线程程序。
59 7
|
26天前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
19 3
|
26天前
|
Java
Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口
【10月更文挑战第20天】《JAVA多线程深度解析:线程的创建之路》介绍了Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口。文章详细讲解了每种方式的实现方法、优缺点及适用场景,帮助读者更好地理解和掌握多线程编程技术,为复杂任务的高效处理奠定基础。
28 2
|
26天前
|
Java 开发者
Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点
【10月更文挑战第20天】Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点,重点解析为何实现Runnable接口更具灵活性、资源共享及易于管理的优势。
31 1
|
3月前
|
Oracle 安全 Java
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
|
3月前
|
安全 Java
【Java集合类面试三】、Map接口有哪些实现类?
这篇文章介绍了Java中Map接口的几种常用实现类:HashMap、LinkedHashMap、TreeMap和ConcurrentHashMap,以及它们适用的不同场景和线程安全性。