首页 > 编程语言 >JAVA【案例4-8】模拟物流快递系统程序设计

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

时间:2024-05-31 10:59:15浏览次数:28  
标签:JAVA String number System 快递 println 程序设计 public out

【模拟物流快递系统程序设计】

1、案例描述

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

2、案例目的

(1)学会分析“模拟物流快递系统程序设计”案例的实现思路

(2)完成“模拟物流快递系统程序设计”的代码编写、编译及运行

(3)掌握面向对象封装、继承和多态的概念和使用

(4)掌握抽象类和接口的使用

3、运行结果

4、代码实现

package cn.itcast.example;

/*
 * 交通工具类
 */
abstract class Transportation{
	private String number;//编号
	private String model;//型号
	private String admin;//运货负责人
	public Transportation() {
		super();//可省略
	}
	public Transportation(String number, String model, String admin) {
		super();
		this.number = number;
		this.model = model;
		this.admin = admin;
	}
	//运输方法
	public abstract void transport();
	//编号
	public void setNumber(String number) {
		this.number = number;
	}
	public String getNumber() {
		return number;
	}
	//型号
	public void setModel(String model) {
		this.model = model;
	}
	public String getModel() {
		return model;
	}
	//负责人
	public void setAdmin(String admin) {
		this.admin = admin;
	}
	public String getAdmin() {
		return admin;
	}
	
}
/*
 * 定义保养接口,具备保养功能
 */
interface Careable{
	//保养方法
	public abstract void upKeep();
}
/*
 * 专用运输车类
 */
class ZTransportation extends Transportation implements Careable{
	//无参构造
	public ZTransportation() {
		super();
	}
	//有参构造:车辆编号、型号、负责人
	public ZTransportation(String number,String model,String admin) {
		super(number,model,admin);
	}
	//运输方法
	public void transport() {
		System.out.println("运输进行中....");
	}
	//重写车辆保养方法
	public void upKeep() {
		System.out.println("货物运输车辆保养完毕!");
	}
}
/*
 * 快递任务类
 */
class SendTask{
	private String number;//快递单号
	private double goodsWeight;//货物重量
	public SendTask() {
		super();//可以省略
	}
	public SendTask(String number,double goodsWeight) {
		this.number = number;
		this.goodsWeight = goodsWeight;
	}
	//送前准备
	public void sendBefor() {
		System.out.println("订单开始处理,仓库验货中...");
		System.out.println("货物重量:"+this.getGoodsWeight()+"kg");
		System.out.println("货物检验完毕!");
		System.out.println("货物填装完毕!");
		System.out.println("运货人已通知!");
		System.out.println("快递单号:"+this.getNumber());
	}
	//发送货物
	public void send(Transportation t,GPS tool) {
		System.out.println("运货人"+t.getAdmin()+"正在驾驶编号为"+t.getNumber()+"的"+t.getModel()+"发货货物!");
		t.transport();
		String showCoordinate = tool.showCoordiante();
		System.out.println("货物当前的坐标为:"+showCoordinate);
	}
	//送后操作
	public void sendAfter(Transportation t) {
		System.out.println("货物运输任务完成!");
		System.out.println("运货人"+t.getAdmin()+"所驾驶的标号为"+t.getNumber()+"的"+t.getModel()+"已归还");
	}
	public String getNumber() {
		return number;
	}
	public void setNumber(String number) {
		this.number = number;
	}
	public double getGoodsWeight() {
		return goodsWeight;
	}
	public void setGoodsWeight(double goodsWeight) {
		this.goodsWeight = goodsWeight;
	}
}
/*
 * 定义GPS接口,具备GPS定位功能
 */
interface GPS{
	//显示坐标的方法
	public String showCoordiante();
}
/*
 * 定义一个手机类,实现GPS接口,拥有定位功能
 */
class Phones implements GPS{
	public Phones() {//无参构造
		super();
	}
	//定位方法
	public String showCoordiante() {
		String location = "193.485";
		return location;
	}
}
/*
 * 定义测试类
 */
public class example {

	public static void main (String[] arge) {
		//快递任务类对象
		SendTask task = new SendTask("HYX600235",76.34);
		//调用送前准备方法
		task.sendBefor();
		System.out.println("==================");
		//创建交通工具对象
		ZTransportation t = new ZTransportation("ZTransportation","大奔","小韩");
		//创建GPS工具对象
		Phones p = new Phones();
		//将交通工具与GPS工具传入送货方法
		task.send(t, p);
		System.out.println("=======================");
		//调用送后操作方法
		task.sendAfter(t);
		t.upKeep();
	}
}

标签:JAVA,String,number,System,快递,println,程序设计,public,out
From: https://blog.csdn.net/m0_68442003/article/details/139291519

相关文章

  • Java字符串逗号分隔转换List集合
    开发中常用String字符串接收多个用逗号或分号分隔的id,之后再将字符串处理成List<String>集合来方便使用数据。常用方式1.For循环添加Stringstr="123,456,789";List<String>listIds=newArrayList<>();String[]split=str.split(",");for(Strings:split){......
  • Java构造方法的作业题
    基于面向对象的构造方法的调用,产生有参和无参的构造方法,使用private去保护类内访问packagecom.imooc.day01;/***@authorwangChen*@date2024/5/30*@Description*/publicclassHomeWork01{privateStringname;privateintdata;privatedou......
  • 探索Java
    第一站:Java绿——基础语法的清新之源关键词:类、对象、封装、继承、多态Java的旅程始于一片生机盎然的绿色,正如其标志性的咖啡杯图标,象征着活力与基础。在这里,我们学习Java的基础语法,理解面向对象编程的核心概念——类与对象,以及封装、继承、多态的奥秘。就像是在春天播下知识......
  • 面经-Java,Linux,Mysql,网络
    状态码2xx:成功类3xx:重定向4xx:客户端错误5xx:服务器错误404:未找到网页400:请求语法错误500:服务器错误503:服务器停机200:成功post和get的区别get多用于获取服务端数据,post多用于向服务端推送数据。get的参数多拼接在url中,post的参数放在请求体中。故post的安全系数高......
  • 基于javaweb jsp ssm的停车场管理系统vue(源码+lw+部署文档+讲解等)
    前言......
  • 基于javaweb jsp ssm的图书馆图书借阅管理系统(源码+lw+部署文档+讲解等)
    前言......
  • 基于javaweb jsp ssm的网上图书购物销售_旧书回收vue(源码+lw+部署文档+讲解等)
    前言......
  • 关于《Java并发编程之线程池十八问》的补充内容
    一、写在开头在上一篇文章我们写《Java并发编程之线程池十八问》的时候,鉴于当时的篇幅已经过长,很多内容就没有扩展了,在这篇文章里对一些关键知识点进行对比补充。二、RunnablevsCallable在创建线程的时候,一般会选用Runnable和Callable两种方式。【源码对比】Runnable接......
  • **java反射与方法**
    问题导入假如要调用一个类的所有方法,而这个类有1000个方法,该怎么办???解决方案:1.类名.方法名(太麻烦了) 2.使用java中的反射机制(推荐使用getDeclaredMethod()方法)一、反射机制概念在java中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法,并且对......
  • 使用Java实现线性回归算法
    线性回归算法原理线性回归的基本思想是通过一条直线来拟合数据点,使得数据点到这条直线的距离平方和最小。其数学表达式为:y=β......