Java第二次实验报告——Java面向对象程序设计
北京电子科技学院(BESTI)
实 验 报 告
课程名称:java程序设计实验 班级:1352 姓名:洪韶武 学号:20135219
成绩: 指导教师:娄嘉鹏 实验日期:2015.05.07
实验密级: 预习程度: 实验时间:
仪器组次: 必修/选修:选修 实验序号:02
实验名称: Java面向对象程序设计
实验目的与要求:
目的:
1. 初步掌握单元测试和TDD
2. 理解并掌握面向对象三要素:封装、继承、多态
3. 初步掌握UML建模
4. 熟悉S.O.L.I.D原则
5. 了解设计模式
要求:
1.完成实验、撰写实验报告,以博客方式发表在博客园
2.实验报告重点是运行结果、遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法
3. 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施
实验仪器:
| 名称 | 型号 | 数量 |
| PC | MAC | 1 |
实验步骤:
(一)单元测试
1.三种代码
伪代码:以简洁的自然语言表明设计步骤;
产品代码:用以实现特定功能的程序或机器语言;
测试代码:用以对产品代码进行测试的代码
应用举例:学生考试等级划分程序产品代码
产品代码:

测试代码:
测试一:选取某一合法输入值进行测试

测试二:测试各个等级数值

测试三:测试边界情况、测试非法数值输入


2.TDD(Test Driven Devlopment, 测试驱动开发)
以程序测试推动程序开发即先写测试代码,然后再写产品代码的开发方式
java中有单元测试工具JUnit来辅助进行TDD,具体过程见下:
java——〉File——〉New——〉Java Project——〉TDDDemo——〉右键单击TDDDemo——〉New——〉Source Folder——〉test——右键单击test——〉New——〉JUnit Test Case——〉MyUtilTest——〉其superclass改为junit.framework.TestCase

在src中新建MyUtil类并输入产品代码,然后运行测试代码(Run as——> JUnit Test)
运行结果如下(分别为修改产品代码前后测试结果):


(二)面向对象三要素
封装、继承与多态
封装:将与某一将数据与相关行为包装在一起以实现信息就隐藏,核心内容是模块化和信息隐藏,与此相伴的是接口的使用
封装示例


利用umbrello软件,可以将以上思路进行具象化表示

继承:以封装为基础,一个类的定义可以基于另外一个已经存在的类,即子类基于父类,从而实现父类代码的重用。其更为广泛而重要的作用是实现多态,
继承示例:
Dog类和Cat类都有Color属性和相应的setter和getter方法,可以通过继承使其精炼化,把Color属性和相应的setter和getter方法放到父类Animal中


(三)设计模式初步
(1)S.O.L.I.D原则
SRP(Single Responsibility Principle,单一职责原则):对象提供单一职责的高度封装,对象的改变仅仅依赖于单一职责的改变
OCP(Open-Closed Principle,开放-封闭原则):即对扩充开放(功能可增加),对修改封闭(源代码不可改动)
OCP实现手段:(1)抽象和继承,(2)面向接口编程
LSP(Liskov Substitusion Principle,Liskov替换原则):子类必须可以被其基类所代,父类型对象可以被子类型对象所取代
ISP(Interface Segregation Principle,接口分离原则):客户不应该依赖他们并未使用的接口
DIP(Dependency Inversion Principle,依赖倒置原则)
(2)模式与设计模式
模式是某外在环境(Context) 下﹐对特定问题(Problem)的惯用解决之道。其中最重要的是设计模式。
(3)设计模式实示例
设计模式四个基本元素
Pattern name:描述模式,便于交流,存档
Problem:描述何处应用该模式
Solution:描述一个设计的组成元素,不针对特例
Consequence:应用该模式的结果和权衡
示例及运行结果:

(四)练习
1.使用TDD的方式设计实现复数类Complex。
设计思路:在测试类中,人为设置测验标准(即注明若干情况下的输出量,应本着尽可能全面的原则);在产品代码中,为了符合测试类标准,应该分情况进行输出。
代码实现及运行结果:


2.PSP统计:
| 步骤 | 耗时 | 百分比 |
| 需求分析 | 2min | 10% |
| 设计 | 3min | 14% |
| 代码实现 | 5min | 24% |
| 测试 | 3min | 14% |
| 分析总结 | 8min | 38% |
Java第二次实验报告——Java面向对象程序设计的更多相关文章
- java第二次实验报告
课程:Java实验 班级:201352 姓名:池彬宁 学号:20135212 成绩: 指导教师:娄佳鹏 实验日期:15.05.05 实验密级: ...
- java第二次实验报告20135231
Java实验报告二:Java面向对象程序设计 20135231 何佳 实验要求: 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉 ...
- 20165210 Java第二次实验报告
20165210 实验二 Java面向对象程序设计 一.面向对象程序设计1--单元测试和TDD 实验要求 参考 http://www.cnblogs.com/rocedu/p/6371315.html ...
- 南京邮电大学java第二次实验报告
实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...
- 20145330《Java程序设计》第二次实验报告
20145330<Java程序设计>第二次实验报告 实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承多态 3.初步掌握UM ...
- 20145320《Java程序设计》第二次实验报告
20145320<Java程序设计>第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.12 15: ...
- 《Java程序设计》第二次实验报告
20145220 <Java程序设计>第二次实验报告 课程:Java程序设计 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 实验内容 初步掌握单元测 ...
- 20145333 《Java程序设计》第二次实验报告
2014333 <Java程序设计>第二次实验报告 课程:Java程序设计 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 实验内容 初步掌握单元测试 ...
- 20145240 《Java程序设计》第二次实验报告
20145240 <Java程序设计>第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.04.12 实验 ...
随机推荐
- javaweb(五)——Servlet开发(一)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
- hdu1312Red and Black(迷宫dfs,一遍)
Red and Black Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- 在几份docx文档中里查找某个值
import docx, os def readDocx(fileName): doc = docx.Document(fileName) content = '\n'.join([para.text ...
- 【20180807模拟测试】T2 box
[问题描述] 有个桌子长 R 宽 C,被分为 R*C 个小方格.其中,一些方格上有箱子,一些方格上有按 钮,一些方格上有障碍物,一些方格上是空地.现在有个任务,需要把所有箱子推到这些按 钮上面.箱子有 ...
- Dev c++ 调试步骤
不能调试的时候,修改下列地方: 1.在“工具”->编译选项->”Add following commands when calling complier”下面的编辑框里写入:-g3 2.在 ...
- opencv-学习笔记(6)图像梯度Sobel以及canny边缘检测
opencv-学习笔记(6)图像梯度Sobel以及canny边缘检测 这章讲了 sobel算子 scharr算子 Laplacion拉普拉斯算子 图像深度问题 Canny检测 图像梯度 sobel算子 ...
- 彻底删除win10的 Windows Defender
使用删除工具和一些教程,都无法删除,最后找到了这个: https://www.newasp.net/soft/351946.html 关闭掉服务后,在C盘全盘搜索,删除,完成了
- HDU 2490 Parade(DPの单调队列)(2008 Asia Regional Beijing)
Description Panagola, The Lord of city F likes to parade very much. He always inspects his city in h ...
- Python中变量名里面的下划线
1 变量名前后都有两个下划线(__X__),表示是系统级变量: 2 变量名前只有一个下划线(_X),表示该变量不是由from module import *导入进来的: 3 变量名前有两个下划线(__ ...
- 软工2017团队协作第七周——个人PSP
10.27 --11.2本周例行报告 1.PSP(personal software process )个人软件过程. 类型 任务 开始时间 结束时间 中断时间 实际用时 ...