java第4-6次作业总结

1.作业过程总结
①总结三次作业之间的知识迭代关系;

三次作业难度差不多。

第四次作业的第一题水文校验及处理是这三次作业里最难的一题,它考验我们对字符串处理类和正则表达式的使用。对于第一次接触正则表达式,我觉得有点困难,难以操作。剩余两题还好,都是对类的加深理解与运用。

第五次作业要求我们掌握对继承及多态性的使用。刚开始对于多态性的概念不是很理解,然后便边写边看,在一步一步的调试中加强了对继承与多态性概念的理解与运用。

第六次作业要求掌握对继承、多态性的使用方法以及接口的应用。经过上次作业,继承与多态性没有什么困难,接口这里花了较长的时间。经过老师上课的讲解,知道了接口的使用,再经过一些时间的调试,便解决了。同时这次作业里的第三题加分题有蛮高的技巧性,不可强硬解决。

②如何通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性;

三次作业都运用了封装。第五次作业要求我们掌握对继承及多态性的使用。第六次作业要求掌握对继承、多态性的使用方法以及接口的应用。通过三次作业,解决一个又一个的错误,一步一步加强多继承性、多态性、封装性的理解与使用。

③作业过程中遇到的问题及解决方法

1.问题:第四次作业的第二题,由于将圆心位置定位不准确,导致输出结果不正确。同时不知道这题如何使用随机方法,导致不能运行。

解决方法:首先搜索了一下这题随机方法的使用,然后再像同学请教,然后就解决了这个问题。

2.问题:不知道多态性的使用。

解决方法:在多态性类中,抽象类型可以只写一个函数名称加abstract,在子类继承中,子类可以直接使用这个函数。

3.问题:函数求导没有思路。

解决办法:使用正则表达式,将数据切割开来。

4.问题:如何将图形根据面积排序。If()else()太麻烦,行不通。

解决方法:使用接口操作,运用java本身自带的排序功能将它排序。

 5.问题:由于public static Scanner input = new Scanner(System.in);main函数外,不知道如何使用。

解决方法:根据提示:使用Main.input.next…即可(避免采坑)要注意的是,此处的Main是文件名,若文件名是Main可以直接使用,若不是,则把Main改成你的文件名。


④每次作业花费的时间比例

三次作业所用时间差不多,由于技术限制,每次基本上都要在最后一天交,最后一次由于开始写的时间比前两次早,所以提前写完,前两次大概都花了3天左右,作业未能全部完成。

所用时间比例:第四次:第五次:第六次:=3:3:5
⑤对编程过程的严谨性的认识及教训

面向对象的编程过程非常严谨。在第六次作业编程过程中,我由于忘记使用这个接口implements Comparable<Card> ,Comparator<Card>,程序并未报错,导致不能输出结果,后面花了很长时间进行排查。真的面向对象的严谨性很重要,最关键这种错误很可能程序并不会自动指出,如果写的时候不够严谨,后面就要花费大量时间进行排查。
2.OO设计心得
①对面向对象三大技术特性之间关系的理解

封装可以隐藏实现细节,使得代码模块化;

继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。

多态除了代码的复用性外,还可以解决项目中紧偶合的问题,提高程序的可扩展性.。

②面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)

单一职责原则(Simple Response Principle):就一个类而言,应该仅有一个引起他变化的原因。当一个类承担了过多的职责,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当设计变化时,设计会遭受到意想不到的破坏。

-闭原则:软件实体(类,模块,函数等),应该可以扩展,但不可修改。即:对于扩展是开放的,对于更改是封闭的。
③OO编程思维的理解

上一次是对Main()类的基础理解,main()调用类,类履行职责。在上次理解的基础上,我这次对类的理解更加深刻。除了main调用类,类与类之间也可以调用,同时类与类之间还可以使用基础,多态性,封装性,接口等许多操作,让编程更加简单。同时更加方便地修改与升级。

④类设计心得

类的设计是对总体布局的体现。类可以设计很多种,但并不是越多越简单,在将各部分工作进行分割时,我们也需要找到其中的共同部分,降之设计成一个新类,这样就可以减少对内存的占用。同时类与类之间通过一些方法的连接,可以将类的功能发挥得更加淋漓尽致。
3.测试的理解与实践
①测试对于编码质量的重要性

一个好的代码都有一个好的质量。质量不好,不但可能不能运行出正确的结果,更可能会产生不可估计的后果。一个好的编码不仅仅逻辑清晰,同时功能也会很强大,能够极大地减少错误概率的发生,也能减少对内存的占用。
②查阅资料,假设使用Junit进行程序的测试是否可行

可行。

 JUnit是一个Java编程语言的单元测试框架。以书写一系列的测试方法,对项目所有的接口或者方法进行单元测试。它有很多好处:

1.启动后,自动化测试,并判断执行结果, 不需要人为的干预。

2. 只需要查看最后结果,就知道整个项目的方法接口是否通畅。

3.每个单元测试用例相对独立,由Junit 启动,自动调用。不需要添加额外的调用语句。

4.添加,删除,屏蔽测试方法,不影响其他的测试方法。 开源框架都对JUnit 有相应的支持。
4.课程收获
总结这四周来在OO方面的教训及收获

随着学习的东西越来越多,编程自然也是越来越难,但是如果学习好了,学习的透彻,那就可能比之前学习的不透彻时写的作业更加简单。其实每次作业的时间都很长,如果拖到最后两天来写根本就写不完。就像前两次作业我只留了3天左右的时间来写,没写完一方面是由于能力有限,另一方面是由于所剩时间不够充裕。所以作业应该趁早开始,这样就可以有足够的时间对错误的地方进行纠正。这四周我也学会了对继承、多态性的使用,正则法则目前我还是不太熟悉。
5.对课程的建议
①第三阶段作业难度、题量的建议

这几次作业难度我觉得是可以的,再难一点我可能就承受不了,如果下次没有类图,我希望老师可以先出几道简单的题,如果这次没有类图的话,那么很可能第六次作业完全不会。如果题目简单可以出个3/4个题,如果难的话,2个我就得就够呛了。
②课程内容讲解方面的建议
这次老师让同学讲解,我觉得我收获良多。因为老师有时候并不知道我们作业中出现什么了问题,而一起写作业的小伙伴可以很好的理解我们,以后老师可以多采用这种方式。同时老师现在的这种讲解方式我也觉得很好,我觉得我很适用。

猜你喜欢

转载自www.cnblogs.com/xiaojianguo/p/12817614.html
4-6