java实验二

一、实验内容

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

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

3. 初步掌握UML建模

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

5. 了解设计模式

二、实验过程(本次试验都是在自己电脑上完成,没有使用实验楼)

(一)单元测试

用程序解决问题时,要会写三种码:伪代码、产品代码、测试代码

这种先写测试代码,然后再写产品代码的开发方法叫“测试驱动开发”(TDD)

TDD的一般步骤如下:

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

(二)面向对象三要素

1.抽象

抽象就是抽出事物的本质特征而暂时不考虑他们的细节。对于复杂系统问题人们借助分层次抽象的方法进行问题求解;在抽象的最高层,可以使用问题环境的语言,以概括的方式叙述问题的解。在抽象的较低层,则采用过程化的方式进行描述。在描述问题解时,使用面向问题和面向实现的术语。 程序设计中,抽象包括两个方面,一是过程抽象,二是数据抽象。

2.封装、继承与多态

面向对象(Object-Oriented)的三要素包括:封装、继承、多态。

过程抽象的结果是函数,数据抽象的结果是抽象数据类型。

封装实际上使用方法(method)将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,从而带来模块化(Modularity)和信息隐藏(Information hiding)的好处;接口(interface)是封装的准确描述手段。

(三)设计模式初步

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

面向对象三要素是“封装、继承、多态”,任何面向对象编程语言都会在语法上支持这三要素。如何借助抽象思维用好三要素特别是多态还是非常困难的,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)的惯用解决之道。

在面向对象中设计模式的地位可以和面向过程编程中的数据结构的地位相当。

(四)练习

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

伪代码:

首先设计一个复数类complex,定义三个构造方法:

①没有参数时默认为实部和虚部都为0;

②一个参数时默认为实数,即虚部为0,

③两个参数时分别为实部和虚部

再定义两个成员方法计算两个复数的和与差.定义一个print()方法输出复数的值,当虚部为0时不输出虚部. 
最后定义一个song类使用complex类,在这个类的主方法中创建两个复数对象,分别计算这两个复数的和与差并输出.

产品代码:

测试代码:

运行结果:

2.PSP(Personal Software Process)时间


步骤


耗时百分比


需求分析


15%


设计


25%


代码实现


35%


测试


15%


分析总结


10%

4.总结

在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试,可以查找错误、写出高质量的代码、提高编程水平。

单元测试的好处远不止我目前发现的这些。它可以使代码可以放心修改和重构、使程序员从调用者而不是实现者的角度设计软件模块、

使程序员将软件模块写得易于测试和调用,从而有利于解耦、测试本身可作为被测代码的用法说明,从而替代了一部分文档功能。

三、遇到的问题及解决

1.提示Animal代码有错,Dog和Cat需要在文件中被定义。将Animal和Dog、Cat放在不同的class文件中编译

2.Complex伪代码时不知道应该如何分类。查询复数类的构造方法,得知可以定义三类

四、实验收获

写程序先写出三种代码:伪代码、产品代码、测试代码,这样的程序才有实际意义。

运用好单元测试可以在未来的程序设计中让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质

量能得到稳定的、量化的保证。

时间: 2024-08-04 14:04:49

java实验二的相关文章

Java实验二实验报告:java面向对象程序设计

java实验二实验报告 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计模式 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2.完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等).解决办法(空洞的方法如“查网络”.“问

java实验二实验报告

一.实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计模式 二.实验过程(本次试验都是在自己电脑上完成,没有使用实验楼) (一)单元测试 用程序解决问题时,要会写三种码:伪代码.产品代码.测试代码 这种先写测试代码,然后再写产品代码的开发方法叫“测试驱动开发”(TDD) TDD的一般步骤如下: 明确当前要完成的功能,记录成一个测试列表 快速完成编写针对此功能的测试用例 测试代码编译

Java实验二实验报告 20135108 李泽源

北京电子科技学院(BESTI) 实     验    报     告 课程:Java 班级: 1351    姓名:李泽源   学号:20135108 成绩:              指导教师:娄嘉鹏   实验日期:2015.5.8 实验密级:          预习程度:          实验时间:15:30~18:00 仪器组次:27         必修/选修:选修     实验序号:02 实验名称: Java面向对象程序设计 实验目的与要求:    1. 初步掌握单元测试和TDD 2

java实验二 20135106宋世超

北京电子科技学院(BESTI) <Java程序设计>课实验报告 班级:201351              姓名及学号:宋世超  20135106 指导教师:娄佳鹏            必修/选修:选修 实验日期: 2015年5月7日      实验时间: 18:30至20:30 实验序号:(二)           成绩:   实验名称:Java面向对象程序设计 一.实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4.

JAVA实验二(面向对象)

注:由于网络卡顿,部分内容在自己电脑上的eclipse上完成 课程:Java程序设计          班级: 1351 姓名:姜文敏                学号:20135112 成绩:             指导教师:娄嘉鹏       实验日期:2015.05.06 实验密级:         预习程度:             实验时间:2015年5月8日-5月9日 仪器组次:        必修/选修:选修       实验序号:2 实验名称:Java面向对象程序设计 实验目

Java实验二20135104

课程:Java程序设计          班级: 1351 姓名:刘帅                学号:20135104 成绩:             指导教师:娄嘉鹏       实验日期:2015.05.05 实验密级:         预习程度:             实验时间:8:30~12:30 仪器组次:        必修/选修:选修       实验序号:2 实验名称:Java面向对象程序设计 实验目的与要求: 1.没有Linux基础的同学建议先学习<Linux基础入门(

java 实验二 输出hello world

一.输出“Hello World!” 1.新建一个java项目,点击File->New->Java Project,创建java项目的界面之后,输入项目名称,点击finsh. 2.新建一个包 3.在包下新建一个类 4.编写程序输出“HelloWorld 二.测试主方法的输入参数. 然后再点击run 三.实验心得 这是本学期java 的第二个实验,相较于第一个, 这次感觉稍微熟练了一点,但是由于是刚刚接触,相对来说 学起来,真正实验起来还是有点困难,通过查资料,向同学问,完成了本次实验. 原文地

20172329 2017-2018-2 《程序设计与数据结构》实验二报告

20172329 2017-2018-2 <程序设计与数据结构>实验二报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 王文彬 学号:20172329 实验教师:王志强 实验日期:2018年4月21日 必修/选修: 必修 1.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 完成实验. 2. 实验过程及结果 一.理解内容 首先,我根据老师所给的几篇博客中大致了解了什么是TDD测试

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

北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:李海空  学号:20135329 成绩:             指导教师:娄嘉鹏      实验日期:2015.5.7 实验密级:         预习程度:         实验时间: 仪器组次:          必修/选修:            实验序号: 实验名称:       Java面向对象程序设计 实验目的与要求:实验内容 1. 初步掌握单元测试和TDD 2.