标签:
北京电子科技学院(BESTI)
实 验 报 告
课程:Java 班级: 1351 姓名:李泽源 学号:20135108
成绩: 指导教师:娄嘉鹏 实验日期:2015.5.8
实验密级: 预习程度: 实验时间:15:30~18:00
仪器组次:27 必修/选修:选修 实验序号:02
实验名称: Java面向对象程序设计
实验目的与要求:
1. 初步掌握单元测试和TDD
2. 理解并掌握面向对象三要素:封装、继承、多态
3. 初步掌握UML建模
4. 熟悉S.O.L.I.D原则
5. 了解设计模式
实验仪器:
名称 |
型号 |
数量 |
计算机 |
|
1 |
实验楼 |
|
1 |
统计的PSP(Personal Software Process)时间
步骤 |
耗时(min) |
百分比 |
需求分析 |
15 |
7.5% |
设计 |
40 |
20% |
代码实现 |
45 |
22.50% |
测试 |
40 |
20% |
分析总结 |
60 |
30% |
实验内容一:
(一)单元测试
(1) 三种代码
编程前要把干什么、如何干想清楚才能把程序写对、写好。想用程序解决问题时,要会写三种码:
现在,我们通过一个例子说明如何写这三种代码。
需求:我们要在一个MyUtil类中解决一个百分制成绩转成“优、良、中、及格、不及格”五级制成绩的功能。
伪代码:
如果成绩小于60,不及格
如果成绩在60~70,及格
如果成绩在70~80,中等
如果成绩在80~90,良好
如果成绩在90~100,优秀
产品代码:
用java将伪代码翻译一下
测试代码:
用于测试产品代码。
尝试了50这个数字
但是50是显然不够的,下边多测试几组数据。
再测试一下-10和115这种错误数据,发现运行-10的结果不对
修改代码
再次测试运行没问题了
再测试一下边界数据:
发现100不对,再修改一下代码
测试通过
(2)TDD(Test Driven Devlopment, 测试驱动开发)
先写测试代码,然后再写产品代码的开发方法叫“测试驱动开发”(TDD)。
TDD的一般步骤如下:
基于TDD,我们不会出现过度设计的情况,需求通过测试用例表达出来了,我们的产品代码只要让测试通过就可以了。
依然以上述例子为例:
关于边界测试不再一一展示,将产品代码调整至能通过测试的内容。如上截图所示。
(二)面向对象三要素
(1)抽象
抽象就是抽出事物的本质特征而暂时不考虑他们的细节。对于复杂系统问题人们借助分层次抽象的方法进行问题求解;在抽象的最高层,可以使用问题环境的语言,以概括的方式叙述问题的解。在抽象的较低层,则采用过程化的方式进行描述。在描述问题解时,使用面向问题和面向实现的术语。 程序设计中,抽象包括两个方面,一是过程抽象,二是数据抽象。
(2)封装、继承与多态(三要素)
封装实际上使用方法(method)将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,从而带来模块化(Modularity)和信息隐藏(Information hiding)的好处;接口(interface)是封装的准确描述手段。
以封装为基础,继承可以实现代码复用,需要注意的是,继承更重要的作用是实现多态。
多态是指不同的类对象调用同一个签名的成员方法时将执行不同代码的现象。多态是面向对象程序设计的灵活性和可扩展性的基础。
(三)设计模式初步
面向对象三要素是“封装、继承、多态”,任何面向对象编程语言都会在语法上支持这三要素。如何借助抽象思维用好三要素特别是多态还是非常困难的,S.O.L.I.D类设计原则是一个很好的指导:
OCP是OOD中最重要的一个原则,OCP的内容是
DIP的内容是:
高层模块不应该依赖于低层模块。二者都应该依赖于抽象
(四)练习1)复数类ComplexNumber的属性
realPart: 实部,代表复数的实数部分
imaginPart: 虚部,代表复数的虚数部分
2)复数类ComplexNumber的方法
ComplexNumber() 构造函数,将实部,虚部都置为0
ComplexNumber(double r, double i) 构造函数,创建复数对象的同时完成复数的实部,虚部的初始化
getRealPart() 获取实部
getImaginaryPart() 获取虚部
getRealPart(double d) 设置实部
getImaginaryPart(double d) 设置虚部
add(ComplexNumber c) 复数相加
add(double c) 复数相加
minus(ComplexNumber c) 复数相减
minus(double c) 复数相减
ComplexMulti(ComplexNumber c) 复数相乘
ComplexMulti(double c) 复数相乘
toString() 把当前复数对象的实部,虚部组合成a+bi的字符串形式
标签:
原文地址:http://www.cnblogs.com/jorilee/p/4486167.html