Java第二阶段作业总结
前言
第四次作业:水文数据校验及处理、蒙特卡罗方法求圆周率、图形的继承;
第五次的作业:图形的继承和多态一元多项式求导;
第六次作业:图形卡片排序游戏、图形卡片分组游戏、求素数。这三次作业涉及的知识点有正则表达式对数据合法性的校验、继承、多态等。
作业过程总结
① 总结三次作业之间的知识迭代关系
第四次作业涉及的知识点主要是 使用Java中的字符串处理类以及正则表达式对输入字符串数据进行合法性校验及计算以及实现图形类的继承;
第五次作业是掌握类的继承、多态性及其使用方法;
第六次作业主要练习类的继承、多态性使用方法以及接口的应用。
② 如何通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性
封装性:作业的结构中会有不同的类,将对象的属性和行为(或方法)封装起来,而将对象的属性和行为封装起来的载体是类,类通常对用户隐藏其实现的细节,这就是封装,在Java中通常通过建立一个实体类,用来封装对象的属性和行为,具体操作不在main函数中出现。
继承性:简单来说就是使子类的对象拥有父类的全部属性和行为,同时可以增添自己的所特有的属性和行为以及改变父类行为的内容使其成为自己特有的行为。如果有大量的相似的类需要写 这样可以节省写共同具有的属性和方法代码的时间,有利于代码的复用。
多态性:表现在同一方法在不同类中具体过程不同。例如:在父类定义了getArea()的方法,继承父类的 圆类、球类等子类 的getArea()的具体操作并不相同。
③ 作业过程中遇到的问题及解决方法
1、 在第四次作业中最大的问题在于第一题水文校验,因为第一次接触复杂的类的关系图和复杂的正则表达式。所以出现了很多因为正则表达式不正确导致的错误,通过上网查阅资料解决。
2、 第五次作业中在求导的那题中主要是考虑到正则表达式去寻找指数、系数有点困难,所以我直接改为 对输入的字进行 扫描式的归类,从头开始 *x之前的为系数、x^之后的数为指数。
3、 第六次作业中的图形卡片问题,不会对List类型的 进行排序,上网查阅资料解决。
三次作业花费的时间比例:
虽然第四次作业也不是很难,但是由于第一次接触,所以花费时间较长
所以时间比例为 2:1:1
④ 对编程过程的严谨性的认识及教训:
通过第四次作业水文校验和第五次作业一元多项式求导中由于正则表达式的使用的不够严谨,对判断输入的字段识别的并不符合要求。导致很多次出现不符合题目要求的结果出现。在使用正则表达式时情况要考虑全面,逻辑要严谨
OO设计心得
① 对面向对象三大技术特性之间关系的理解
面向对象三大技术特征分别是封装、继承、多态。
封装:就是隐藏对象的具体实现细节。是编写程序的最基本的操作。
继承:在封装的基础上实现使一个类拥有另一个类的属性以及行为。
多态:在有多个类继承同一个父类时候,子类们继承过来的方法具体实现步骤不同。
面向对象设计的基本原则理解(单一职责原则以及“开-闭“原则)
单一原则:考虑对象的属性行为,使其只实现自己应有的职责,使代码的复杂度下降,提高了类的可读写性和可维护性。
“开-闭“原则:实现应该对扩展开放,对修改关闭,其含义是说一个软件应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化的。
OO编程思维的理解
面向对象顾名思义就是考虑问题时候,要优先考虑应该拥有什么什么对象,而不是具体的方法,在考虑对象的属性行为和功能,最后考虑对象与对象之间的关系,使其结合起来实现具体功能,达到要求。
② 类设计心得
遇见问题时候,需要将问题分解,应该需要的对象(什么类),对象又应该有怎样的属性和方法,这时候就需要实现单一原则,考虑到类与类之间的关系,绝对是否实现继承等关系。
测试的理解与实践
① 测试对于编码质量的重要性
只有多多的测试不同的数据才能从数据的输出上判断代码的优劣,是否存在漏洞,如果提交的代码因为侥幸通过测试,代码并不是完整的需要改进,在使用代码时肯定会出现一些错误。只有多多测试才能让代码不断的优化,更加实用。
② 使用Junit进行程序的测试
需要新建一个测试类。测试的类名,通常是直接在需要测试的类名后加Test。
测试类中main函数前加入以下代码
import static org.junit.Assert.*;
import org.junit.Test;
测试的main函数中填写 需要测试的代码
测试的代码前要加上@Test
Junit测试用例不是用来证明你是对的,而是用来证明你没有错。
测试通过后,进度条会是绿色的,没有通过的是红色的。
课程收获
这四周来在OO方面的教训及收获:第四次作业水文数据校验及处理中因为写的杂乱,没有遵循单一原则,测试和修改起来很麻烦,很难知道问题出在哪里。收获表现在对正则表达式的应用更加熟练,更加深入了解了 面向对象 的知识。
对课程的建议
① 第三阶段作业难度、题量的建议:
作业难度和题量希望适中,主要是要能体会到知识可以学以致用。
② 课程内容讲解方面的建议:
可以讲解前几次的作业,使同学们可以有更多的理解和解决的方法,想法不再单一。

浙公网安备 33010602011771号