Java 面向对象程序设计_2017-2018-2 20165215 实验二 Java面向对象程序设计

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

一、实验报告封面

课程:Java程序设计 班级:1652班 姓名:张家佳 学号:20165215

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

实验时间:15:35 - 18:00 实验序号:二

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

实验目的与要求:

完成实验、撰写实验报告,注意实验报告重点是运行结果,遇到的问题以及分析

实验报告中统计自己的PSP(Personal Software Process)时间

掌握使用IDEA完成基础编程与程序调试的能力

二、实验内容

初步掌握单元测试和TDD

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

初步掌握UML建模

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

了解设计模式

三、实验步骤

(一)单元测试

新建一个项目,在项目下新建MyUtil类

94d50a64dff1918e49b3021e4e8b74c4.png

测试对类的实现,类XXXX的单元测试,我们一般写建一个XXXXTest的类,针对MyUtil类我们写一个MyUtilTest.java的测试模块。

818b4dd0692a0efbd7dddb39fafa0d52.png

若测试结果符合预期,则出现test passed!(如下图),否则将显示错误

959b2f917052e2db6ec8b34cbf041900.png

正常情况

644ca3521310fc93484f273186c110c9.png

异常情况

023d57b3385b368413c3b1f38fafd6c9.png

边界情况

2a36c0dacc8f929b3ea1bd18c035c546.png

(二)以 TDD的方式研究学习StringBuffer

创建新目录,并在该目录下创建StringBufferDemo类

鼠标单击类名,单击出现的灯泡状图标或按Alt + Entert,在弹出的菜单中选择Create Test

12b3a99618a1f78672c4a2967c85464a.png

编写代码测试StringBufferDemo类的的charAt(),indexOf(),capacity(),length(),toString()

capacity()返回的是目前的最大容量

length()返回的是字符串的长度

indexOf(String s)子串匹配,返回输入的子字符串的第一个字母在母字符串的位置

charAt(int i)返回的是字符串中的第i+1个字符

4.运行结果

b2915075533420a45ebccc694ad8ec95.png

(三)对设计模式示例进行扩充

我的学号是20165215,15%6=3,因此需要让系统支持Long类,并在MyDoc类中添加测试代码表明添加正确

在程序中新建Long类(Date类的子类)和LongFactory类(Factroy类的子类)

修改主函数MyDoc为

public class MyDoc {

static Document d;

public static void main(String[] args) {

d = new Document(new LongFactory());

d.DisplayData();

}

运行结果

434ee917b989ce32f402e2409b4b16de.png

(四)以TDD的方式开发一个复数类Complex

472846ee86430eddde6ca33e51f0c668.png

(五)使用StarUML对实验二中的代码进行建模

a7c16f0543ea1b67256985f67bda707f.png

实验中遇到的问题

问题:创建test类时,junit显示为红标

9ea48bd741b11ed99aae894f37774c16.png

解决方法:在Project Structure中添加如下junit包,并将Testing library由JUnit3改为JUnit4

4eab0291817a06b371b12227978c5b8c.png

PSP时间

步骤

耗时

百分比

需求分析

10min

9.5%

设计

15min

14.2%

代码实现

30min

28.5%

测试

20min

19.0%

分析总结

30min

28.5%

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值