19201409-范祥晨-第二次作业总结

0.前言
主要针对第五次到第七次作业的总结
1.作业过程总结

从一开始我们就进行了水文数据校验及处理。比较复杂,所以一开始就从后面两题入手。水文处理这方面,使用了Java中的字符串处理类以及正则表达式对输入字符串数据进行合法性校验,对于正则表达式很多方面都不懂,还有很多知识都没掌握,只能拿到一些基本的的分。在计算圆周率时,用了蒙特卡洛仿真方法,这种方法很实用,经过指导书指导后,也很顺利的写出来了。从图像继承开始,我们开始理解面向对象的封装性、继承性与多态性三大技术特性;一些类中的私有方法,类与类之间的继承如何进行。还慢慢学会了getter和setter方法。在第六次作业中,就进行了第五次作业中的图像继承题目,来计算各个图形的面积,在这次作业中,我使用了需要使用的继承方法,另外在为了解决一些问题,引入了几个全局数组,方便存取数组中的数据,在经过一段时间后还是顺利的完成了题目。在一元多项式求导时,不会引用一段字符串中的数据,不知道怎么提取,查了很多资料,但是还是发现有些地方过不了,就很头大,最后还是不会写,只能写一下输入错误的方法。在第七次作业中,先写了求素数的方法,一开始运行结果是对的,但是很慢很慢,通过不了,之后查了一些资料,发现了一个更快的解决方法,然后便顺利通过了测试。随后编写了图形卡片排序游戏。目的是掌握类的继承、多态性使用方法以及接口的应用。上课的时候学习了comparable,还用了其中的CompareTo()方法。这次作业,其实和上次的作业有很大的相同之处,但是有些问题解决不了,类似的不知道如何将字符和排序之后的数据大小相匹配,不知到如何解决。图形卡片分组游戏和上一题的图形卡片排序游戏很相似,通过修改了一些地方,还是很快解决了问题。

这几次作业,难度是慢慢的加大的,而且知识也是越来越集中,通过几次实验掌握的更加牢固。知识迭代也让我更加清晰地了解了这方面的东西。整体来说一次作业应该需要花费10个小时左右,有一些实在写不来的会费时间会少很多。

通过这几次作业,发现在编程过程中逻辑严谨性是十分重要的,一个语句错误就有可能导致整个系统的运算结果出错,并且通过这几次作业,发现写作业时一定要专心,认真,不能一遍做作业,心还想别的。有时候一个字母打错就可能导致整个结果运行错误。还有在这几次作业中,遇到了很多次的数据类型不匹配的问题,因为有些是整形的,有些是double类型的,而且在编写代码的时候系统不会报错,这就导致之后花费了很多时间去修改,而且还一度会以为自己的代码写错了,这就让人很摸不着头脑。所以在编写代码的时候不仅要细心,而且要认真观察,避免造成一些没必要的错误,浪费大量的时间。

2:设计心得

1:对于封装的理解封装是 JAVA 面向对象思想的一种特性,也是一种信息隐蔽的技术。而封装的原则,就是将类中的某些信息隐藏起来,来防止外部程序直接访问,通过类中的方法实现对隐藏的信息调用和访问,使用对应的 get 和  set 方法。对于封装的优点就是隐藏信息,有利于数据安全性有利于类内部信息的修改调压者只需调用,无需了解实现过程。

2:面向对象设计的基本原则理解。开闭原则:对修改封闭,对扩展允许。不能修改已有的类/父类,通过扩展实现修改软件的变化。因为已有的类的方法和接口 可能存在多个继承,动了BaseClass,继承的其他类也会受到影响。扩展方式参考依赖倒置原则。

同时对于替换原则,父类实现的方法子类可以直接使用,避免功能代码的重复,子类不可以复写,只能新建其他的方法。假如要实现扩展,就是不从实例化的父类中继承,而从基于抽象类和接口的继承。

3:对于编程思维的理解。我们编程人员,要对过程进行分析,从某一方面来讲,面向过程更强调细节,忽视整体性和边界性。我们从c语言到java,其实都是为了简化编程任务而创建的。“万物皆对象”,这就是oop的意向体现,我们一定要经过一段实例过程来完成。面向对象是以对象为中心,将对象的内部组织与外部环境区分开来,将对象的内部属性数据与外部隔离开来;就是封装对象特征,对外提供入口,其行为与属性构成一个整体,而系统功能则表现为一系列对象之间的相互作用的执行流。在编程组织中,对象的属性与方法不再像面向过程那样分开存放,而是视为一个整体。我们都知道,在面对过程和面对对象之间有很多方面是可以互补的,我们这次实验学习了继承和多态,就让面向对象显得更为简洁,组织性,灵活性得到了大大的加强。

3.测试的理解与实践

1:在编写代码的过程中,相对于c语言的编程,java会直接且简单的帮我们指出我们所存在的问题,以便我们直接修改。在测试过程中,老师教我们编完一个小模块就把他拿出来运行,来测试一下你预期的结果是否和输出的结果相同。我也采取了老师的建议,发现很好用。还有在有些题目时,有时候写的比较笨,导致代码很长,一点都没有节约空间。导致其质量比较差。我会在接下来的学习过程中,努力去学习如何增进代码的质量。

2:使用Junit进行程序的测试是可行的

4:教训和收获

在编写代码时,得到了很多教训,不能正确的使用一些方法,一些算法也比较模糊,还有不细心,自己粗心大意从而导致自己的代码运行结果不同,之后又要花大量时间去检查代码,很浪费时间。在接下来的日子里要不断提升自己,并且要让自己在写代码时,能够安心下来,不去想别的事。

5:对课程的建议

难度其实还行,体量也比较适中,对老师也没什么建议,上课也挺好的,不过也希望老师能解决一些我们常常问到的问题,比如作业有些还是不会的,希望老师也能在上课时间为我们讲解一下。

猜你喜欢

转载自www.cnblogs.com/fanxiangchen/p/19201409-fanxiangchen2.html