结合面向对象编程思想,开发“裹裹快投”快递服务控制台程序,可实现用户寄件、取件、查询订单、修 改订单、取消订单等功能的代码
时间: 2023-07-10 22:12:56 浏览: 263
模拟物流快递系统程序设计(面向对象的程序设计)
很抱歉,由于代码量比较大,我无法在此提供完整的代码。但是,我可以提供一个大致的程序框架,你可以参考这个框架来实现具体的代码。
1. 定义实体类
```java
// 订单类
public class Order {
private String orderNumber; // 订单号
private String senderName; // 寄件人姓名
private String senderPhone; // 寄件人电话
private String senderAddress; // 寄件人地址
private String receiverName; // 收件人姓名
private String receiverPhone; // 收件人电话
private String receiverAddress; // 收件人地址
private double weight; // 快递重量
private double price; // 快递价格
// 构造方法、get和set方法等
// ...
}
// 上门取件订单类
public class DoorToDoorOrder extends Order {
private String pickUpTime; // 取件时间
// 构造方法、get和set方法等
// ...
}
// 服务点自寄订单类
public class SelfDeliveryOrder extends Order {
private String expressCompany; // 快递公司
// 构造方法、get和set方法等
// ...
}
// 常用联系人类
public class Contact {
private String name; // 姓名
private String phone; // 电话
private String address; // 地址
// 构造方法、get和set方法等
// ...
}
```
2. 定义Dao接口和实现类
```java
// Dao接口
public interface OrderDao {
// 添加订单
void addOrder(Order order);
// 删除订单
void deleteOrder(String orderNumber);
// 修改订单
void updateOrder(Order order);
// 查询订单
Order findOrder(String orderNumber);
}
// Dao实现类
public class OrderDaoImpl implements OrderDao {
private List<Order> orderList; // 用来保存订单信息的泛型集合
// 构造方法、get和set方法等
// ...
@Override
public void addOrder(Order order) {
// 将订单添加到泛型集合中
}
@Override
public void deleteOrder(String orderNumber) {
// 在泛型集合中查找订单并删除
}
@Override
public void updateOrder(Order order) {
// 在泛型集合中查找订单并更新
}
@Override
public Order findOrder(String orderNumber) {
// 在泛型集合中查找订单并返回
return null;
}
}
```
3. 定义Service接口和实现类
```java
// Service接口
public interface OrderService {
// 添加订单
void addOrder(Order order);
// 删除订单
void deleteOrder(String orderNumber);
// 修改订单
void updateOrder(Order order);
// 查询订单
Order findOrder(String orderNumber);
}
// Service实现类
public class OrderServiceImpl implements OrderService {
private OrderDao orderDao; // Dao对象,用来实现具体的操作
// 构造方法、get和set方法等
// ...
@Override
public void addOrder(Order order) {
// 调用Dao对象的方法添加订单
}
@Override
public void deleteOrder(String orderNumber) {
// 调用Dao对象的方法删除订单
}
@Override
public void updateOrder(Order order) {
// 调用Dao对象的方法更新订单
}
@Override
public Order findOrder(String orderNumber) {
// 调用Dao对象的方法查找订单
return null;
}
}
```
4. 实现具体的功能
在测试类中,我们可以实现具体的功能。例如:
```java
public class Main {
public static void main(String[] args) {
OrderService orderService = new OrderServiceImpl();
// 添加订单
Order order = new DoorToDoorOrder();
orderService.addOrder(order);
// 查询订单
Order foundOrder = orderService.findOrder(order.getOrderNumber());
// 修改订单
foundOrder.setWeight(2.0);
orderService.updateOrder(foundOrder);
// 删除订单
orderService.deleteOrder(foundOrder.getOrderNumber());
}
}
```
5. 序列化和反序列化
```java
// 将泛型集合对象保存到文件中
public void saveToFile(List<Contact> contactList) {
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("contacts.dat"))) {
oos.writeObject(contactList);
} catch (IOException e) {
e.printStackTrace();
}
}
// 从文件中加载泛型集合对象
public List<Contact> loadFromFile() {
List<Contact> contactList = null;
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("contacts.dat"))) {
contactList = (List<Contact>) ois.readObject();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
return contactList;
}
```
这只是一个大致的程序框架,具体的实现方式还需要根据实际需求进行调整。
阅读全文