00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)

系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、ppt概述
    • 1、什么叫对象的关联
    • 1)、(简单的)依赖关系
    • 2)、关联关系
    • 3)、聚合
    • 4)、组合
    • 5)、继承(Generalization,又称泛化,is-a的关系)
  • 二、分析:视图类与管理类分析
  • 三、分析:Javabean实体类与Data类分析
  • 四、分析:包结构
  • 五、功能实现:主界面功能
    • 0、先把数据拿到:如果报错,改一下包名
    • 1、然后bean里面先写最基础的员工类型
    • 2、下面写下一个类型:设计师
    • 3、 下面写架构师类,继承至设计师类
    • 4、设备接口完善和 PC类、打印机类
    • 5、bean包 1.0版本结束,开始封装数据对象
    • 6、初次验证效果:写打印功能1.0版本
    • 7、重构的应用:优化打印的bug
  • 六、功能实现:添加功能
    • 1、首先考虑一个问题,添加跟哪些类有关系
    • 2、该项目里面建议抛自定义异常
    • 3、Debug 调试 找bug
  • 七、功能实现:列表功能
  • 八、功能实现:删除功能
    • 快捷键自动配置sop + Alt+/ 快捷键自定义配置
    • 删除功能
  • 九、功能实现:界面微调
  • 总结

前言

主要是想对前面所学做一个复盘,利用起来016之前所学

一、ppt概述

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第1张图片
有哪些功能?
你在一个公司,公司里面有很多人,你要选一些人来组成开发的团队,基于这样的一个数据的增删改查,只不过数据依然不在数据库里面,而是在一些类里面
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第2张图片

1、什么叫对象的关联

1)、(简单的)依赖关系

即我对象里面:我代码里面用到你的类型这就叫依赖
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第3张图片
A类中出现了B类、C类、D类、E类
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第4张图片

2)、关联关系

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第5张图片

3)、聚合

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第6张图片

4)、组合

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第7张图片

5)、继承(Generalization,又称泛化,is-a的关系)

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第8张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第9张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第10张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第11张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第12张图片
我们后面把这个数据放到项目里面去
并且要把它们变成对象

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第13张图片
选人的时候也要考虑对象的类型,架构师、设计师和程序员、普通员工是不要的(也就是说需要判断员工类型)
主界面
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第14张图片
添加成功后的界面
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第15张图片
注意删除的时候是删除的团队编号,而不是员工编号
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第16张图片
继承
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第17张图片
整个项目分为三大模块
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第18张图片

视图层–业务逻辑层–数据层(暂时放弃,因为没有暂时我们不使数据库)

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第19张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第20张图片00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第21张图片

二、分析:视图类与管理类分析

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第22张图片

三、分析:Javabean实体类与Data类分析

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第23张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第24张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第25张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第26张图片

四、分析:包结构

1、创建项目

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第27张图片
2、建包
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第28张图片
一共要创建的包有:
com.atguigu.bean
com.atguigu.view
com.atguigu.service
(工具类:)
com.atguigu.utils
(测试:也可不写,直接写在view里面也行)
com.atguigu.test
(异常:有点项目组就直接放在管理类里面,你也建一个包)
com.atguigu.exception
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第29张图片

五、功能实现:主界面功能

0、先把数据拿到:如果报错,改一下包名

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第30张图片

1、然后bean里面先写最基础的员工类型

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第31张图片
PPT上直接有设计,可以按照PPT上面的来
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第32张图片
添加完属性之后,按照eclipse的功能依次自动生成属性–>构造器–>get/set–>方法
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第33张图片
然后写它的子类:程序员类 Programmer.cs 继承至员工
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第34张图片
注意这个包别导,这是一个网络状态的一个包,跟我们这里所说的没有关系,这个Status类是我们自己写的
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第35张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第36张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第37张图片
下面我们解决这个Status问题,创建一个枚举,就如图选最后一个
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第38张图片
添加三个状态即可、
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第39张图片
这个时候可以在程序员类 Programmer 里面添加构造器了,先生成无参构造,再生成有参构造
这里生成有参构造的时候有一个技巧
在这里插入图片描述
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第40张图片
其它的get/set跟以前没有区别、往下写就行,然后重新toString();
在这里插入图片描述
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第41张图片

2、下面写下一个类型:设计师

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第42张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第43张图片
设计师继承 程序员
属性多了个奖金
同样的 属性–>构造器–get/set–>方法(先把重写toString()方法写上)
先选无参构造,如下
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第44张图片
再选有参的,如下
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第45张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第46张图片

注意有参的程序员类有两个,我们们选下面那个,也可两个都选(这里我们就全部写了吧)
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第47张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第48张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第49张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第50张图片

3、 下面写架构师类,继承至设计师类

只是多了一个属性,其它的操作跟上一个设计师类一模一样 属性–>构造器–>get、set–>toString()方法
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第51张图片

到这里,人的四个类型就已经写完了(员工–程序员–程序设计师–架构师),他们之间是有继承关系的

4、设备接口完善和 PC类、打印机类

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第52张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第53张图片

那么实现这个抽象方法的子类我们假设是PC类:

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第54张图片
实现Equuipment这个接口
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第55张图片
实现Equuipment这个接口过程中我们发现一个问题,因为接口中有抽象方法,所以这里报错了,我们必须要去实现这个抽象方法
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第56张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第57张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第58张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第59张图片
对应的,我们要加个 笔记本类
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第60张图片
也是实现我们的 设备接口 Equipment

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第61张图片
完成上面的操作之后,我们也要重写计算机的 详细信息描述

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第62张图片
下面再看打印机类

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第63张图片
也去实现我们的接口,同样的操作

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第64张图片
重写描述详细信息
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第65张图片
bean 包的1.0版本到这里就结束了

下面就要把Data里面的数据分封装成一个个的对象了

5、bean包 1.0版本结束,开始封装数据对象

那么这些数据要像bean里面这些类一样变成一个一个对象,写在哪里呢?
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第66张图片
写在我们的管理类,哪个管理类呢?
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第67张图片
当然是写在全公司的员工管理类 里面
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第68张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第69张图片

静态导入
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第70张图片
Data中的EMPLOYEE遍历二维数组,把一行一行的数据封装成一个个Employee,Programmer等的对象,放到all数组中
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第71张图片
将 对象转为基本数据类型的过程是 拆箱
结构如下:
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第72张图片
那么到底是有参构造还是无参构造呢?,无参构造没有把数据传过去,我们肯定是想要有参构造
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第73张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第74张图片

员工如下:
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第75张图片
员工完了之后,程序员怎么去判断呢?程序员会多一个设备,就可以利用这个去判断
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第76张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第77张图片
有一些复杂,我们用一个方法来完成这个需求
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第78张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第79张图片
调用很方便,但是我们怎么去写这个方法呢?
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第80张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第81张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第82张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第83张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第84张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第85张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第86张图片

打印机也是同样的操作
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第87张图片
设备的方法就完成了,下面再来看设计师
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第88张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第89张图片
在这里插入图片描述
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第90张图片
奖金这样写就行了,很简单
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第91张图片
注意架构师也是和上面一样的写法
只是奖金这里的声明不用再次声明了,因为前面已经声明了
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第92张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第93张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第94张图片
至此,初始化信息就写完了
写了这么多,这个方法在哪用呢?

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第95张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第96张图片
这俩方法不调用肯定是不会用的,我们将它写在构造器里面00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第97张图片
接下来,我们验证一下效果
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第98张图片

.

6、初次验证效果:写打印功能1.0版本

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第99张图片

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第100张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第101张图片

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第102张图片
分两步
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第103张图片
新增一个方法
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第104张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第105张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第106张图片
下面验证一下
验证有两种方法去运行
1、@Test
2、我们之前预留了test包,在test包里面写也行
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第107张图片
方式2
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第108张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第109张图片
运行效果如下:
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第110张图片
大致成形了,但是格式有点乱七八糟的,是什么原因造成的呢?是因为我们的toString()方法重写的问题
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第111张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第112张图片

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第113张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第114张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第115张图片
处理方式其实也有很多种,可以不继承,就是不使用super,但是这样会很麻烦,
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第116张图片
那到底应该怎么办呢?

在员工类里面我们发现这几个变量在子类里面、子类的子类里面、曾子类里面、曾孙类里面都要用到,那我们优化一下呢?
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第117张图片

7、重构的应用:优化打印的bug

优化如下:
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第118张图片
或者ALT+Shift+M
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第119张图片
修饰符知识点:
1、public:public表明bai该数据成员、成员函数是du对所有用户开放zhi的,所有用户都可以直dao接进行调用
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用。
3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第120张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第121张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第122张图片
再回到设计师,也是一样,后面都是如此
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第123张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第124张图片
再看一次效果,看看是否还有要改的地方
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第125张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第126张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第127张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第128张图片
后面每一个类都是这样改
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第129张图片
打印机也是
最后效果如下:
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第130张图片
现在只剩下状态了
数据里面并没有给出,我们处理办法有两种 1、给出一个默认值 ;
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第131张图片
数据里面并没有给出,我们处理办法有两种 2、去原始数据里面的值(但是这里没有)暂不考虑;

六、功能实现:添加功能

1、首先考虑一个问题,添加跟哪些类有关系

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第132张图片
第一步得找到TeamView 找到菜单的添加
这个时候就需要用到键盘输入了 一种是用我们的Scanneer一种是用第三方类库如下
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第133张图片
ctrl+c /ctrl+v直接放到工具包里面就行了
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第134张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第135张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第136张图片
菜单架构如下
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第137张图片
现在我们要做的是添加功能,要怎么做呢?
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第138张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第139张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第140张图片
我们看这个,发现这个也还没写呢
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第141张图片

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第142张图片

2、该项目里面建议抛自定义异常

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第143张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第144张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第145张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第146张图片
揭晓答案,继承如下,并且保留如上图所示的两个构造器
在这里插入图片描述
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第147张图片
注意这个异常我们只能用throw语句把它抛出去
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第148张图片
扔出去我们就不管了,让上一级去处理
回到 TeamView
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第149张图片
这里的为什么会报错,因为我们之前把异常扔出去了,这里你要么处理要么接着扔

我们这里就处理一下吧
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第150张图片
下面要写哪部分了
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第151张图片
TeamService部分
新建一个类
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第152张图片

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第153张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第154张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第155张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第156张图片
状态怎么加呢?员工这并没有状态,程序员里面才有状态
因此我们想要去获取这个状态要怎么去获取呢
因为我们的形参现在是Employee类型
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第157张图片
向下转型就可以了

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第158张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第159张图片
这里使用total会好一些
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第160张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第161张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第162张图片
因为total在这里是一个不确定的值
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第163张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第164张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第165张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第166张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第167张图片
下面调试看下效果

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第168张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第169张图片
没有New Programmer
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第170张图片

3、Debug 调试 找bug

改完代码之后再试试
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第171张图片
这种不报错的bug怎么解决呢?
现在写了这么多,我们怎么定位问题呢
解决办法:全部关掉,重新来过
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第172张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第173张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第174张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第175张图片
最终我们发现 这个对象在这创建是有问题的
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第176张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第177张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第178张图片
这几个也挪上来
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第179张图片
再测试运行一下
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第180张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第181张图片
至此,添加功能就全部完成了

七、功能实现:列表功能

在这里插入图片描述
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第182张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第183张图片
写完这里不知道后面怎么往下写了,缺了什么方法?
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第184张图片
一定要注意,后面我们熟悉了是能够推断出需要什么方法的,在初学阶段是缺什么补什么
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第185张图片

这里我们使用数组工具类来进行复制,代码如下
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第186张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第187张图片
然后再看效果

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第188张图片
1、TDI 应该改成TID 2、格式不是很对,我们得改对应的toString()方法
那应该怎么办呢?
要么自己拼,要么改java bean (第三版了,也就是第三次改)

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第189张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第190张图片
我们只需要改程序员、设计师和架构师即可
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第191张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第192张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第193张图片

子类 设计师
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第194张图片
再加奖金
在这里插入图片描述
架构师也是一样
架构师价格股票就行了
在这里插入图片描述
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第195张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第196张图片

至此,团队成员列表功能完成

八、功能实现:删除功能

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第197张图片

快捷键自动配置sop + Alt+/ 快捷键自定义配置

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第198张图片
window --> Preferences(属性)–>
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第199张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第200张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第201张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第202张图片
换个很多常用的都可以自己设置一下

删除功能

00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第203张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第204张图片
思考一下,删除的流程,第1步怎么丛,第2步怎么做?
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第205张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第206张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第207张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第208张图片
测试看看(因为没有使用数据库,每次都要重新开始,这里嫌麻烦可以自行添加模拟数据)
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第209张图片

九、功能实现:界面微调

我们来优化
找几个痛点
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第210张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第211张图片
我们先确定一下,界面跟什么有关呢?
界面只跟TeamView有关
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第212张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第213张图片
00016.02 项目三(数组,封装、继承、多态、异常、枚举、项目需求分析)_第214张图片

总结

该项目能够很好的熟悉前面所讲的知识,熟悉怎么去应用,多写几遍,心中无码,方能大成

你可能感兴趣的:(javaSE)