Java面向对象练习——模拟物流运输过程
毛主席说:“实践、认识、再实践、再认识,这样的形式,循环往复以至无穷。而实践和认识之间每一次循环的内容,都比较地进到了高一级的程度。”
前一段时间学习了Java面向对象的系列内容,但各部分知识的学习大都是零散的,分散的。只做过一个飞机大战的小项目,还是很难熟练做到各部分知识的融会贯通。昨天看到一个模拟物流运输过程的小项目,里面对于面向对象的各方面内容大都有涉及,今天看了下书本上给出的代码展示,熟悉了整个项目的逻辑思路。然后基本自主写下了整个项目!算是对所学知识的复习和面向对象编程能力的提高练习。
下面贴出代码,做学习交流!
项目文件菜单:
文件一 Transportation.java
package cn.ftf.practice.goods;
/**
* 运输工具父类
* @author 房廷飞
*
*/
public abstract class Transportation {
private String number; //货车编号 //类下面的属性用private
private String model; //货车型号
private String admin; //运货负责人
//右键构造一个构造器
public Transportation(String number, String model, String admin) {
super(); //指使用父类方法,在这里可有可无
this.number = number;
this.model = model;
this.admin = admin;
}
//定义一个抽象方法//运输方法
public abstract void transport();
//右键自动创建属性的set get 方法
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;
}
}
文件二 Ztransportation.java
package cn.ftf.practice.goods;
/**
* 专用运输车类
* @author 房廷飞
*
*/
public class Ztransportation extends Transportation implements Careable{ //继承Transportation类,本类要继承Transportation类的构造器和抽象方法,并要有接口Careable的方法!
public Ztransportation(String number, String model, String admin) {
super(number, model, admin);
// TODO Auto-generated constructor stub
}
@Override
public void upKeep() {
// TODO Auto-generated method stub
System.out.println("运输车辆已保养完毕!");
}
@Override
public void transport() {
// TODO Auto-generated method stub
System.out.println("运输进行中。。。。。。");
}
}
文件三 Careable.java
package cn.ftf.practice.goods;
/**
* 定义一个车俩保养接口
* @author 房廷飞
*
*/
public interface Careable {
//定义一个抽象保养方法
public abstract void upKeep();
}
文件四 GPS.java
package cn.ftf.practice.goods;
/**
* 定义GPS接口
* @author 房廷飞
*
*/
public interface GPS {
//显示坐标的位置
public String showCoordinate();
}
文件五 Phone.java
package cn.ftf.practice.goods;
/**
* 定义一个手机类,实现GPS定位功能
* @author 房廷飞
*
*/
public class Phone implements GPS {
@Override
public String showCoordinate() {
// TODO Auto-generated method stub
String location="193,485";
return location;
}
}
文件六 SendTesk.java
package cn.ftf.practice.goods;
/**
* 定义快递任务类
* @author 房廷飞
*
*/
public class SendTesk {
private String goodsnumber;
private double goodsWeight;
//右键构造器
public SendTesk(String goodsnumber, double goodsWeight) {
this.goodsnumber = goodsnumber;
this.goodsWeight = goodsWeight;
}
//右键自动set,get方法
public String getGoodsnumber() {
return goodsnumber;
}
public void setGoodsnumber(String goodsnumber) {
this.goodsnumber = goodsnumber;
}
public double getGoodsWeight() {
return goodsWeight;
}
public void setGoodsWeight(double goodsWeight) {
this.goodsWeight = goodsWeight;
}
//送前准备
public void sendBefore() {
System.out.println("订单开始处理,仓库验货中。。。");
System.out.println("货物重量:"+this.getGoodsWeight());
System.out.println("货物检验完毕!");
System.out.println("货物填装完毕!");
System.out.println("运货人已通知!");
System.out.println("快递运单号:"+this.getGoodsnumber());
}
public void send(Ztransportation t,Phone tool) {
System.out.println("送货人:"+t.getAdmin()+"正在驾驶编号为:"+t.getNumber()+"的"+t.getModel()+"发送货物!");
t.transport();
String showCoordinate=tool.showCoordinate();
System.out.println("货物当前的坐标为"+showCoordinate);
}
public void sendAfter(Ztransportation t){
System.out.println("货物运输过程已完成!");
System.out.println("运货人:"+t.getAdmin()+"所驾驶的车辆编号为"+t.getNumber()+"的"+t.getModel()+"已归还!");
}
}
文件七 GoodsTest.java
package cn.ftf.practice.goods;
/**
* 测试类
* @author 房廷飞
*
*/
public class GoodsTest {
public static void main(String[] args) {
SendTesk task=new SendTesk("FTF10000001", 66.66);
task.sendBefore();
System.out.println("======================");
Ztransportation t=new Ztransportation("Z001", "宝马", "房小飞");
Phone p=new Phone();
task.send(t, p);
System.out.println("======================");
task.sendAfter(t);
t.upKeep();
}
}
2019-04-10 20:53:11 房廷飞 期待明天更好的自己!Come on!