学习OO的第一阶段总结
0.前言:
通过近一个月的学习与三次作业的训练完成,进行一次总结!
1.作业过程总结:
①三次作业知识点是层层深入的,不断的迭代,有和OO一样的重用性。
第一次作业是巩固运用java的基础语法,第二次在第一次的基础上要增加一些算法思考。
第三次作业则是加大了难度,要充分考虑代码健壮,代码的性能,
比如第二次是做n[-10,10]的日期类,到了第三次则升级为任意n!对于算法要求提升,知识运用增加,基础语句的合理设计就更高了许多层次!
②三次作业是逐步从面对过程往面对对象过渡的。
但这两次的作业相比于第三次,都是运用面对过程的编程思路编写的,简单的方法属性都放到main函数里面,无脑操作!
第三次出现了面对对象编程,需要合理构造类,属性,方法!,在前面次的基础上升华了,让我们更好的对面对对象编程的思维打下了基础。
通过题目的训练,如第二次计算一元二次方程的解,就设计了两个方法,还是静态方法:
public static void main(String[] args);//主方法
public static int solveQuadratic(double[] eqn, double[] roots);
而第三次作业:要求变成了设计用类解一元二次方程式,设计中需要对属性进行封装,学会get和set的方法调用,第一次感受到了java语言的封装特点,
在类里设计方法(不能是static),要学会如何在main函数里面创建对象,调用相关方法的技能,把问题更加的细化,清楚,独立化,有从属关系等!
③作业问题及解决
因为第一次使用面对对象的思维编写,主要出现问题:对于类的理解,如何设计类,类也可以作为返回值类型,私有属性的调用,用对象调用方法等
解决方法:主要通过四个途径层层递进,自己思考->>查阅资料->>咨询同学->>咨询老师。
一般到第三层可以解决,十分共性的问题,在课上老师会进行解释教学!
④每次完成作业的时间:作业一般是为期一个星期,一般需要4-5天去编写,一天写2-3小时;短则1-2小时,长则3-4小时!时间太久影响效率!
⑤对编程过程的严谨性的认识及教训:
第三次作业中的n取任意值,自己设计的代码是int类型,但是n去int类型最大值时,代码会爆表,出现了bug,pta提交总过不去,对数据的严谨性弱化
只是简单的思考,没有意识到此极限问题!
2.OO设计心得:
刚开始学习面对对象语言(JAVA),感觉不到面向对象与面向过程有什么区别和什么好处,处理问题十分繁琐,没有用面对过程思维解题速度更快,
只觉得书本上的对面对对象声称的好处:封装,继承,多态都很模糊。
①面对过程与面对对象的比较:
面向过程是面对问题一开始就寻找解决解决问题的步骤是怎么样的,
而面对对象和面向过程的最大思想区别就是面向对象是先站在对象的角度来分析问题的。
②面对对象设计的基本原理:
设计的核心概念是对象,使用现实世界的概念抽象地思考问题从而自然地解决问题(类),
并遵循六大设计原则:1 单一原则 2 里斯替换原则: 3 依赖倒置原则 4 接口隔离原则5 迪米特原则 6 开闭原则等原理
③面对对象的思维理解:
举例:人开车去旅游,用面向过程的思想:人发动汽车,放手刹,踩离合,挂挡,踩油门,听导航指引,然后.....。
这就是人开车去旅行的一个过程,也是解决问题的一些步骤。
同样用面向对象的思想来思考解决这件事情的时候,就不是一上来就是问题的方法和过程,而是看与所要解决的问题有哪些对象(有哪些事物,实体),
我们这个开车去旅行的问题,里面包括的对象有:需要开车的人,为人服务的汽车等等;
接着,我们要找去这些对象中有哪些属性,行为与我们所要解决的问题有联系:
汽车的属性有:品牌等,目前状态(熄火,运行),行为有:移动到目的地。
人的行为有:驾驶汽车等。
相信看到这里,你应该看到了面向过程和面向对象的思想是有多大的不同了吧。
分析问题时先看到的是对象,还是过程,我认为这是两种语言的思想上最大的区别。
3.测试的理解与实践:
①测试对于编码的质量与重要性:
测试能够对代码的完备性,可行性,优化等进行很好的评估,能够及时发现问题,如何去解决,起到了至关重要的作用!
正如鲁迅所说:不测试的代码就会出错,可能出错的事情就会出错,你能够模拟测试的越多,你能够代码的也就越强健。
要成为一名优秀的测试人员,就需具备测试能力!
②假如让我设计测试用例:
我会对数据:从数据大小的极限,数据的数量的极限,数据输入的非法性及正常数据!
考虑的基本要素是输入、输出、操作。
4.课程收获:
通过近四周的学习,对OO理解,设计,编写,有了更加深刻的认识,知道了面对对象的优势,如何去合理编程。
教训:
⑴基础的真的很重要,万众高楼平地起!,基础不扎实难以筑造强健的java大厦。
⑵要有良好的编程风格与设计理念,会使你做事情卓有效率。代码不是仅仅给自己看的,别人提供帮助时,看不懂自己写的代码会难以给出优秀的建议!
收获:
⑴学会了如何把理论的与实践分开比对,相互印证。
⑵练就是要在知晓原理的前提下,把它炼成自己的技能,做到随心而发,如果有一天,你想给人讲一个知识点,你可以很从容边敲边讲的时候,那就证明你练习的基本到位了。
⑶悟就是要多多思考,思考书中或老师说的不能如何如何,试试看,找出不能的根本原因。
⑷多想想面向对象的思想到底是在说什么,多想想多态到底为什么要用,怎么用。
⑸虽然前期会遇到很多问题,咬紧牙关继续前行总会成为一名合格的java软件设计工程师。
⑹路漫漫其修远兮,我们必须适应这个互联网时代的节奏, 紧跟它的步伐。
5.对课程建议:
老师能对作业进行一下分析和指导!
6.下一阶段的学习计划:
通过近四周的基础学习,已经有了面对对象的基础思维,下一阶段准备对面对对象的"中级"跃进,学会多态,接口等知识,希望与前一基础阶段能够能很好的巩固,融合,创新,完善!对java有更深刻的认识!
2020-03-28
浙公网安备 33010602011771号