实验二 Java面向对象程序化设计

时间:2022-08-18 02:12:22

实验二 Java面向对象程序设计

一、  实验要求

1.完成实验、撰写实验报告,以博客方式发表在博客园

2.实验报告重点是运行结果、遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法

3. 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施

二、实验内容

1. 初步掌握单元测试和TDD

2. 理解并掌握面向对象三要素:封装、继承、多态

3. 初步掌握UML建模

4. 熟悉S.O.L.I.D原则

5. 了解设计模式

三、实验过程

(一)单元测试

1.知识点:伪代码,产品代码,测试代码

举例:(1)伪代码:从意图层面来解决问题,最终,伪代码是产品代码最自然的最好的注释。

(2)产品代码:有了伪代码,我们用特定编程语言翻译一下,就是可用的产品代码

(3)测试代码:用以对产品代码进行测试的代码

以将学生成绩分等级为例,实现代码如下:

正常的测试,如果55不是fail,则测试失败等

实验二 Java面向对象程序化设计

因为之前没有考虑100,所以边缘测试时100是fail的,只要在100那加上<=,就可以,改进结果如下:

实验二 Java面向对象程序化设计

(二)TDD(Test Driven Devlopment, 测试驱动开发)

先写测试代码,然后再写产品代码的开发方法叫“测试驱动开发”(TDD)。TDD的一般步骤如下:

  • 明确当前要完成的功能,记录成一个测试列表
  • 快速完成编写针对此功能的测试用例
  • 测试代码编译不通过(没产品代码呢)
  • 编写产品代码
  • 测试通过
  • 对代码进行重构,并保证测试通过(重构下次实验练习)
  • 循环完成所有功能的开发

以下是一个TDD实例的练习运行结果图(绿条表明测试通过):

实验二 Java面向对象程序化设计

(三)面向对象三要素

(1)抽象:抽出事物的本质特征而暂时不考虑他们的细节。

(2)封装、继承与多态:

主要为umbrella软件的使用,在Linux虚拟机中运行结果如下:

实验二 Java面向对象程序化设计

实验二 Java面向对象程序化设计

实验二 Java面向对象程序化设计

Dog,Cat,Animal类的使用,

一下为最后一个结果截图:只需要一个getInfo,参数为父类Animal,当方法参数类型为父类时,可以传入子类的对象

实验二 Java面向对象程序化设计

实验二 Java面向对象程序化设计

(四)设计模式初步

(1)S.O.L.I.D原则:

  • SRP(Single Responsibility Principle,单一职责原则)
  • OCP(Open-Closed Principle,开放-封闭原则)
  • LSP(Liskov Substitusion Principle,Liskov替换原则)
  • ISP(Interface Segregation Principle,接口分离原则)
  • DIP(Dependency Inversion Principle,依赖倒置原则)

(2)模式与设计模式

模式是某外在环境(Context) 下﹐对特定问题(Problem)的惯用解决之道。其中最重要的是设计模式。

(3)设计模式实示例

设计模式四个基本元素

Pattern name:描述模式,便于交流,存档

Problem:描述何处应用该模式

Solution:描述一个设计的组成元素,不针对特例

Consequence:应用该模式的结果和权衡

以下为一个实例的结果截图:

实验二 Java面向对象程序化设计

(五)练习

使用TDD的方式设计实现复数类Complex。

首先建立一个类,标准复数:ai+b。那么在类里,如果a或b等于0时,输出error,否则输出复数的标准式。在TDD方法中,如果每一个测试都通过,则最后条为绿色,一下为结果截图:

实验二 Java面向对象程序化设计

实验二 Java面向对象程序化设计