2018-2019-2 实验二《Java面向对象程序设计》实验报告
课程:Java2实用教程 | 班级: | 姓名: | 学号: |
---|---|---|---|
成绩: | 指导教师: | 实验日期:4月19日 | |
实验密级: | 预习程度: | 实验时间: | |
仪器组次: | 必修/选修:选修 | 实验序号: |
目录
实验名称:实验二 面向对象程序设计
实验仪器:
名称 | 型号 | 数量 |
---|---|---|
PC端 | 1 |
实验内容、步骤与体会:
一、实验二 面向对象程序设计-1
参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST
参考http://www.cnblogs.com/rocedu/p/6736847.html
提交最后三个测试用例都通过的截图,截图上要有画图加水印,输入自己的学号。
二、实验二 面向对象程序设计-2
参考 积极主动敲代码,使用JUnit学习Java (http://www.cnblogs.com/rocedu/p/4837092.html)
参考http://www.cnblogs.com/rocedu/p/6736847.html
以 TDD的方式研究学习StringBuffer,提交你的单元测试用例和测试通过的截图,截图要加上学号水印。
三、实验二 面向对象程序设计-3
实验二 Java面向对象程序设计(http://www.cnblogs.com/rocedu/p/4472842.html)
参考http://www.cnblogs.com/rocedu/p/6736847.html
对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式
用自己的学号%6进行取余运算,根据结果进行代码扩充:
4: 让系统支持Float类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印(学号为20175223,23%6=5;任务为0~5六个任务中的4)
四、实验二 面向对象程序设计-4
提交:单元测试代码和运行成功截图及码云上代码链接,截图要加上学号水印
参考http://www.cnblogs.com/rocedu/p/6736847.html
任务:以TDD的方式开发一个复数类Complex,要求如下:
定义属性并生成getter,setter | 定义构造函数 | Override Object | 定义公有方法:加减乘除 |
---|---|---|---|
double RealPart; | public Complex() | public boolean equals(Object obj) | Complex ComplexAdd(Complex a) |
double ImagePart; | public Complex(double R,double I) | public String toString() | Complex ComplexSub(Complex a) |
Complex ComplexMulti(Complex a) | |||
Complex ComplexDiv(Complex a) |
五、实验二 面向对象程序设计-5
使用WhiteStarUML对实验二中的代码进行建模,发类图的截图,加上学号水印。
参考http://www.cnblogs.com/rocedu/p/6736847.html
类图中只少两个类。
六、代码链接
码云仓库:YogileOne https://gitee.com/Yogile/YogileOne.git
在 2018-2019-第2学期\Java 程序设计基础 文件夹中。
码云网页链接:javaexam2
实验过程中遇到的问题以及解决方案
1. 问题:junit 无法使用。
解决方案:
鼠标选中 TestCase
,点击红色灯泡,选择 Create class TestCase
,在窗口中点击 OK
即可。
2. 问题:单元测试中,测试方法时报错。
@Test
public void TestcomplexAdd() throws Exception {
test0.complexAdd(test1,test2);
assertEquals("11.0+ 11.0i",test0.toString());
test0.complexAdd(test3,test4);
assertEquals("-50.0+ -50.0i",test0.toString());
}
报错如下
C:\Java\jdk1.8.0_102\bin\java.exe...
java.lang.Exception: No tests found matching Method TestcomplexAdd(ComplexTest) from org.junit.internal.requests.ClassRequest@4edde6e5
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40) <4 internal calls>
Process finished with exit code -1
解决方案:
单元测试中,测试方法时,方法名必须为 小写开头。
public void testcomplexAdd() throws Exception {
3. 注意:
- (1) 单元测试中,测试方法时,方法前必须有
@Test
; - (2) 要熟练使用 java.unit.Assert 中的方法:assertEquals 等。
体会
单元测试可以通过更简单地方式更方便地进行代码测试,效率极大地提高。
PSP
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 5min | 5% |
设计 | 10min | 10% |
代码实现 | 35min | 35% |
测试 | 40min | 40% |
分析总结 | 10min | 10% |