快递 E 栈系统02(数组+面向对象)

写再前面:
1,本文为Java学习第五部分第一阶段所有项目回顾(快递e站部分-对应Java体系第一部分第二阶段-08-异常)
2,整体项目系列博客(包括整体快递e站系列)
3,完整的Java体系链接(比你想的更多的Java内容)

写在前面的画话

在08-异常那里我没有写上这个作业,思来想去还是准备把所有的项目都单独写上博客,方便回顾。思路分析是重点,我会尽可能把这个项目的逻辑讲解清楚的。

需求介绍:

在这里插入图片描述
在这里插入图片描述

涉及到的知识点:

上一版:
Java基础语法(变量,数据类型,标识符,数据类型转换,方法,运算符),流程控制(API,Scanner类,执行结构),数组
这一版:
面向对象+异常处理

代码运行成功截图:

进入快递系统-输入错误信息在这里插入图片描述

快递员界面:

在这里插入图片描述

快递录入

在这里插入图片描述

快递删除

在这里插入图片描述

快递修改

在这里插入图片描述

查看所有快递

在这里插入图片描述

用户取快递

在这里插入图片描述

思路分析:

毕竟用自己的思路讲一遍
上一版的流程图如下:(毕竟核心的逻辑就是那么回事)
在这里插入图片描述
因为这次需要用到面见对象+异常进行迭代,所以需要简单给代码分一下类。
   既然学习了类与对象。那不把涉及到的操作的变量封装到一个类里就说不过去了。类里至少要有快递单号信息,快递公司信息和取件码信息吧。
   基础的类定义完了,该写一些基础的CRUD方法了,把这些方法定义到dao层(简单方法实现层)需求里要求我们使用二维数组(快递点)保存快递的信息,那就建一个二维数组,看一下上一版的流程图,那再定义一个变量用来记录存储的快递数,定义一个随机数用来随机生成取件码。再写方法之前随便把快递点的大小定义了10*10就行。
方法无非就是增删改查+生成不重复的取件码这个样子了。不会吧,不会吧,真的需要解释吗?还是画个图吧.
在这里插入图片描述
view层就是见名知意了
在这里插入图片描述
main可以理解为主程序,调用dao与view里的方法来实现功能。
在这里插入图片描述
其他:
test:不用管,当成一个启动按钮,
exception:异常类,再异常处理的时候用到

代码:

bean层

package rewu.bean;

import java.util.Objects;

/**
 * 快递类
 */
public class Expresss {
   

    private String number; // 单号
    private String company; // 快递公司
    private int code; // 取件码

    public String getNumber() {
   
        return number;
    }

    public void setNumber(String number) {
   
        this.number = number;
    }

    public String getCompany() {
   
        return company;
    }

    public void setCompany(String company) {
   
        this.company = company;
    }

    public int getCode() {
   
        return code;
    }

    public void setCode(int code) {
   
        this.code = code;
    }

    public Expresss() {
   
    }

    public Expresss(String number, String company, int code) {
   
        this.number = number;
        this.company = company;
        this.code = code;
    }

    @Override
    public String toString() {
   
        return "Express{" +
                "number='" + number + '\'' +
                ", company='" + company + '\'' +
                ", code=" + code +
                '}';
    }

    @Override
    public boolean equals(Object o) {
   
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Expresss express = (Expresss) o;
        return Objects.equals(number, express.number);
    }
}

dao层

package rewu.dao;
import rewu.bean.Expresss;
import java.util.Random;

public class ExpressDao {
   
    private Expresss[][]data = new Expresss[10][];
    private int size; // 当前存储的快递数
    {
   
        for (int i = 0; i < 10; i++) {
   
            data[i] = new Expresss[10];
        }
    }
    private Random random = new Random();

    /**
     * 添加快递
     * @param e
     * @return
     */
    public boolean add(Expresss e){
   
        if (size == 100){
   
            return false;
        }
        size++;// 添加一个快递,实际数量加一
        // 1,随机生成2个0-9的下标
        int x = -1;
        int y = -1;
        while (true){
   
            x = random.nextInt(10);
            y= random.nextInt(10);
       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值