20172325 学号 2017-2018-2 《程序设计与数据结构》实验二报告
课程:《程序设计与数据结构》
班级: 1723
姓名: 邓煜坤
学号:20172325
实验教师:王志强
实验日期:2018年4月23日
必修/选修: 必修
1.实验内容
- 1.初步掌握单元测试和TDD
- 2.理解并掌握面向对象三要素:封装、继承、多态
- 3.初步掌握UML建模
- 4.熟悉S.O.L.I.D原则
- 5.了解设计模式
- 6完成蓝墨云上 (1)-(5)实验。
2. 实验过程及结果
实验一:
- 做实验一的时候是按照老师博客做出来的,在过程上很顺利
代码链接
实验二:
- 实验二按照教程来也很顺利,对TDD的理解也有所帮助
代码链接
实验三:
- 实验三的内容是对设计用例进行扩充,按照学号除6的余数进行,从中体会OCP,DIP模式。总的来说,做下来以后主要是内容比较繁琐,要注重很多细节,一个地方错了就会一直不能运行,但是IDEA能够在错误的地方给出提示真的很方便,点赞。
- 那么这两个是什么知识呢?
- OCP为Open-Closed Principle,开放-封闭原则
我的浅显理解是使子类能在一定的限制下更方便的继承父类,这就体现出了抽象的重要性; - DIP为Dependency Inversion Principle,依赖倒置原则
通过这张图已经很好的解释DIP的定义和好处。下面是我的实验三成果和码云连接。
代码链接
实验四:
- 在实验四的实践过程中费了很大的劲,主要是在测试类的理解和运用上面,在整个过程中我进行了很多不必要的步骤,使简单的事变得麻烦,但是随着反反复复的修改和讨论,最后在磕磕绊绊中也算勉强成功了,但是加深了我对TDD的理解,就是集中注意力在测试的点,把握好每一个类的继承与修改。
代码链接
实验五:
- 实验五主要是学会画一个类图,也就是UML图,这种图在教材上有很多,现在也学着自己构建,觉得很有趣。看起来这只是一个画图工具而已,但是他反映出来的却是编程里的核心思想,在编一个程序之前,我们需要对整个过程有一个宏观的把握,之后是对细节的掌控,而UML类图就能够引导我们一步一步分析编程的思路。所以在具体实践之前先构建UML类图能够很好地帮助我们理清思路并且清晰的解析各个过程。
3. 实验过程中遇到的问题和解决过程
• 问题1:才开始接触用Junit测试一个类,不清楚他的原理,所以在编写几个测试类的时候把他分开建了三四个测试类,感觉不仅冗杂,还得一个一个编写,觉得意义不大,帮了倒忙。
• 问题1解决方案:之后弄懂了他的运行原理,在一个测试类里面可以同时进行不同反面问题的测试,而且它能够自己检测测试点,测试结束后哪个点又问题一目了然,就开始发现了它的优点。
• 问题2:在进行试验三的时候,在Double类下面却输出了整型数。
• 问题2解决方案:把各个声明数据类型的地方逐一修改进行尝试,最后发现关键的一步,做了修改,能够正确的输出想要的数据类型。
3.感悟
- 这次的实验一下来五个,真的感觉压力挺大的,接受的知识点也很多,但是在一点点啃下来以后的那种释然也很妙。总的来说学到了蛮多的东西,对IDEA的运用也更加熟练了,接下来继续加油吧。
参考资料
•实验二《Java面向对象程序设计》的一点说明
•实验二 Java面向对象程序设计
•Intellj IDEA 简易教程