一、实验报告封面

课程:Java程序设计 班级:1652班 姓名:朱文远 学号:20165214

指导教师:娄嘉鹏 实验日期:2018年4月16日

实验时间:13:45 - 15:25 实验序号:二

实验名称:面向对象程序设计

实验目的与要求:
1、完成实验、撰写实验报告,注意实验报告重点是运行结果,遇到的问题以及分析。
2、实验报告中统计自己的PSP(Personal Software Process)时间;
3、掌握使用IDEA完成基础编程与程序调试的能力。

二、实验内容:

  1. 初步掌握单元测试和TDD
  2. 理解并掌握面向对象三要素:封装、继承、多态
  3. 初步掌握UML建模
  4. 熟悉S.O.L.I.D原则
  5. 了解设计模式

三、实验步骤

(一)单元测试

  • 1、创建“Util”项目,在该项目下创建“Util”类,并输入代码:

  • 2、创建test目录,点击类名,跳出灯泡。接着点击Creat Test在test目录下生成MyUtilTest类:

  • 3、在MyUtilTest类中输入以下代码,分别对正常情况、边界情况以及错误情况进行测试:

  • 4、运行结果错误,如图:

  • 5、根据截图中的结果分析,原因是没有考虑分数不能低于0分而且分数可以等于100分。修改程序为:

  • 6、再次运行MyUtilTest,得到“绿条”

(二)TDD

  • 1、创建“TDDDemo”项目,在该项目下创建测试目录“test”,然后在“test”目录下生成一个测试用例类StringBufferTest:

  • 2、为了测试StringBuffer的charAt(int a),indexOf(String s),capacity(),length(),编写代码:

  • 3、运行StringBufferTest,出现绿条,测试成功:

(三)测试用例的扩充

  • 1、我的学号是14,14%6==2,所以我需要进行的扩充是让系统支持Boolean类,并在MyDoc类中添加测试代码表明添加正确。
  • 2、分析:根据抽象工厂模式,我需要在程序中新建两个类Bollean(继承Date类)、BolleanFactory(继承Factroy类)。编程并测试,如图:

(四)练习

  • 1、需要分析:使用TDD的方式设计关实现复数类Complex。
  • 2、创建“Complex”项目,在该项目下创建测试目录“test”,然后在“test”目录下生成一个测试用例类ComplexTest,输入测试代码,运行出现绿条:

  • 3、PSP时间

步骤 耗时 百分比
需求分析 5min 7.1%
设计 5min 7.1%
代码实现 30min 42.9%
测试 20min 28.6%
分析总结 10min 14.3%
  • 4、码云链接
    里面包括伪代码、产品代码、测试代码
  • 5、单元测试的好处
    单元测试我觉得是程序员在编程中除了API的又一大利器。它的方便之处在于你可以对每个类都进行单元测试,不断地检查错误、改正错误直到这个类能够满足我们的需求。这样一来就能够避免之前的写程序的时候,一编译错误就要“牵一发动全身”,花费我们很多时间去调错。
    而且利用单元测试也会让我们的程序更有条理。

(五)本次实验程序UML图的制作

选取本次实验最复杂的应用——第三部分来制作UML图:

遇到的困难与解决

  • 问题1:在创建单元测试的时候,除了TestCase是红色的,junit也是红色的。
  • 问题1解决:先关掉软件重新打开,没有效果;然后鼠标移到junit,发现出现了个红色灯泡,想着随便点一点试试看,点了一下灯泡,然后选择了里面的一个Junit4,问题就解决了。

  • 问题2:在测试StringBuffer类的时候,方法capacity所取得的容量值是怎么计算的?
  • 问题2解决:StringBuffer类有三个构造方法,①StringBuffer(),此时获得的容量为默认值16,超出范围时会自动增加。②StringBuffer(int size),此时获得的容量就是参数size的大小。③StringBuffer(String s),此时获得的同理是s的长度再加上16.
    由于本次实验过程老师都给了很详细的步骤,所以没有出现什么大的问题。

心得体会

经过本次实验内容较多,相应的收获也挺多的。首先,我比较熟练地掌握了Junit的用法。这是本周最大的一个收获,因为通过单元测试,能够加快我的编程速度,降低我的程序出错概率。而且在写单元测试的时候,不经意间就使得程序向着“高内聚低耦合”靠近了,具体因为什么也说不出来,我觉得可能是因为在写单元测试的时候比较注重于完善一个类的功能吧。另外,本周又得到了一个很方便的工具:WhiteStarUML,还学会了在WhiteStarUML中绘制UML图,这是一个很方便的工具,画出来的UML图简洁美观。

20165214 实验二 Java面向对象程序设计的更多相关文章

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

    实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...

  2. 20145213《Java程序设计》实验二Java面向对象程序设计实验报告

    20145213<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装,继承,多态 初步掌握UML建模 熟悉S.O. ...

  3. 20145206《Java程序设计》实验二Java面向对象程序设计实验报告

    20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...

  4. 20145308刘昊阳 《Java程序设计》实验二 Java面向对象程序设计 实验报告

    20145308刘昊阳 <Java程序设计>实验二 Java面向对象程序设计 实验报告 实验名称 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面相对象三要素:封 ...

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

    20145113 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 1.初 ...

  6. JAVA课程实验报告 实验二 Java面向对象程序设计

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计  班级:1353  姓名:韩玉琪  学号:20135317 成绩:             指导教师:娄嘉 ...

  7. 20145225唐振远 实验二 "Java面向对象程序设计"

    20145225<Java程序设计> 实验二 Java面向对象程序设计 实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S ...

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

    20145208 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步 ...

  9. 20162311 实验二 Java面向对象程序设计 实验报告

    实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...

随机推荐

  1. How-to: Use HBase Bulk Loading, and Why

    How-to: Use HBase Bulk Loading, and Why http://blog.cloudera.com/blog/2013/09/how-to-use-hbase-bulk- ...

  2. jq 倒计时

    引入jq 注 在IE和safari 如果时间出现NAN 将时间格式改为YYYY/MM/DD HH:MM:SS 例:var d2 = new Date("2019/02/18 15:59&qu ...

  3. Bipartite Segments CodeForces - 901C (区间二分图计数)

    大意: 给定无向图, 无偶环, 每次询问求[l,r]区间内, 有多少子区间是二分图. 无偶环等价于奇环仙人掌森林, 可以直接tarjan求出所有环, 然后就可以预处理出每个点为右端点时的答案. 这样的 ...

  4. phpmyadmin getshell

    执行SQL语句:SET GLOBAL general_log = ON

  5. vivado实现模16的计数器

    `timescale 1ns / 1ps module ctr_mod_16( clk, rst_n, count ); input clk, rst_n; :] count; wire clk, r ...

  6. 遇到后缀名为whl的库的安装方法

    直接把whl文件改成zip文件,解压到site-packages里面,其中site-packages文件夹位于例如我的位置是e:/python34/lib/sit-packages即可,然后就可以用i ...

  7. 记录一下ES6扩展运算符(三点运算符)...的用法

    ...运算符用于操作数组,有两种层面 1. 第一个叫做 展开运算符(spread operator),作用是和字面意思一样,就是把东西展开.可以用在array和object上都行. 比如: let a ...

  8. windows配置教程

    1.卸载预装软件 2.卸载非安装的预装软件 有些软件被改成了“绿色版”软件不能通过软件列表卸载,一般在C:\Program Files (x86)目录下 可以直接删除其文件夹,如果提示文件夹无法删除则 ...

  9. wps去除首字母自动大写

    首字母大写功能在不是进行英文编写时是个“自作聪明”的功能,我们可能会想把它关掉.

  10. 在Linux下面如何查看tomcat已经使用多少线程(Threads)

    先用 ps aux |grep tomcat 查看tomcat的 PID 再用 ps -T -p <PID>|wc -l 查看线程