面向对象第一次做业周期(前四周)总结

面向对象第一次做业周期(前四周)总结

——对面向对象程序设计的基本认识html

0.前言:算法

接触面向对象程序设计这门课程已经有四周有余了,通过四周的网课,直播课,PTA做业题等的练习,我对面向对象程序设计有了本身的理解和兴趣。前三次的PTA做业让我逐渐从面向过程思惟逐步转变为面向对象思惟,做业由本身独立思考独立完成,整体完成效果良好。编程

 

  1. 做业过程总结:

1)      第一次做业的题目较为简单,我的感受更偏向于面向过程的思路,第二次做业和第三次做业的关联较大,第二次做业的7-2,7-3,7-4都是关于日期的问题,数组

 

 

 第三次做业的日期类设计更是第二次做业的拓展和衍生,app

 

 

 此外第三次做业的7-1和第二次做业的7-1都是求解一元二次方程,第三次在第二次的基础上,更加贴近于面向对象,更加精妙。学习

2)      在第一次做业时,面对题目下意识的去一步一步解决,只去解决题目的要求,去设计解题的过程,并无实际上理解以及运用面向对象的思惟,到第二次做业时,开始有类的大体认识,并能够按题目要求写出相应的类和方法来解决问题,而且第一次在解题过程当中用到了对象,到第三次做业,已经可以清晰地按面向对象的思路去思考问题,可以读懂类图,并体会到了面向对象的优势。测试

3)      做业中遇到了不少不少的问题,主要的解决方法是向老师同窗求助,和本身网上参考资料解决问题。如:优化

第一次做业的7-4:输入三角形三条边,判断该三角形为何类型的三角形。编码

这个题目中由于三条边长都是双精度浮点型数据,判断的直角三角形时,勾股定理并不适用,在屡次报错后,我求助同窗,学习到了(a*a + b*b - c*c)<1e-6的方法,解决了这个问题。spa

第一次做业的7-5:编写程序读取一系列整数,找出它们的最大数,而后计算该数的出现次数,假定输入以0结束。

这个题我想到了用数组来解决,可是没有具体的数组长度,因此我在不断地查找后,学习了ArrayList类的基本使用方法,问题迎刃而解。

第三次做业7-2: 日期类设计

这是我目前遇到的最大的一个难题,死磕了三天才解决,

 

向老师和同窗求助,后决定优化算法,在以前的算法中,我使用了屡次循环,每次循环都会建立新的数组,致使内存占用过多,内存超限,在简化事后,大大减小了循环次数,使得程序有更好的可用性。

4)      第一次做业和第二次做业我只用了一天的时间,第三次因为算法的复杂,花费时间较多,尽早地作完做业能够更好地拿出时间来研究网课,品味编程的乐趣。

5)      编程是一个极其严谨的事情,在做业的完成过程当中,我由于不够严谨出现了各类各样的BUG。如:括号的位置不对,循环的内容不对等等,不少时候一个因为不够严谨致使的BUG足以让人抓狂!!!

编程必定要养成良好的习惯和严谨的态度,谨小慎微,只有严谨地对待代码才能高效的提升进步速度!共勉!

 

2.面向对象设计心得

1)      我认为面向对象与生活更加贴切,就好比一个老旧的例子:洗衣服。面向过程来写须要写洗衣服的整个步骤,取衣服,加水,倒洗衣液等等……

而面向对象更像是我写一我的的类,这个类有一个洗衣服的方法,我只须要new一我的的对象就能够实现,并且我若是须要新的一些动做,只须要在类里面加新的方法,相对于面向过程来讲大为简便;

2)      面向对象有五大基本原则,目前只接触到了一部分,我分享一个连接,有关五大原则的内容,供往后学习掌握:https://www.cnblogs.com/yellowapplemylove/archive/2011/05/11/2042903.html

3)      面向对象编程思惟我还处在一个渐悟的过程当中,在学习到面向对象的编程思惟后,我发现万事万物均可以归为类,每个类都是由属性和方法构成的。代码中写的每一句话都不能超过类的范围,非常条理清晰。每个类都有本身的单一职责,当须要使用类的时候,须要new一个类的对象来实例化,由对象来实现类的方法,就比如类是女娲造人的模具,而对象是一个个活生生的人,具备模具的种种特性。(可能我的的理解并非那么确切,在往后的学习中会不断完善本身的思惟)

 

3.测试的理解与实践

1)      测试对编码来讲是重中之重,检验一个代码的可用性,交互性,准确性等都和测试密不可分。并且不少时候,测试不仅仅是检测代码是否准确,结果是否无误,并且也在检测代码的实用性,如第三次做业7-2,有个测试点是int最大值2147483647的测试,我最初的代码测试的结果并无错误,但在计算最大值时,明显感受耗时长,且电脑负荷变大,这样我开始对本身的算法产生怀疑。通过屡次改进,最终在测试时计算速度明显简短,内存也再也不超限。

在课上也学习了junit的测试方法,了解了一点简单的白盒测试知识,在往后也会多加关注这方面的内容。

2)      关于测试点,我认为我会设计不少方面,最基本的是边界值,特殊值,普通值,还要设计代码运行的时间,所占的内存,是否按要求输入输出,输入非正常的值的结果,以及我认为能够加一些关于结构的测试点,测试结构是否符合规范。

 

4.课程收获

面向对象给我打开了新世界的大门,我认为本身最大的收获就是对编程产生了浓厚的兴趣,我开始自发地去学习以及思考,在做业的过程当中个人思路也逐渐清晰缜密,本身发现了本身的进步。这是我认为最大的收获。兴趣是最好的老师,在这样一个线上授课的特殊时期更是如此,没有强有力的监督,而这门课程带给个人乐趣是我不断学习的强大动力。

 

5.对这门课程的建议

我的认为每次直播课的内容要更详细一些,多一些和同窗的互动,最好能够设置一个专门的时间用来答疑,由于在同窗们本身看慕课以及完成做业时,会碰到各类各样的问题,设置一个专门的时间来答疑,能够给同窗提一点建议,减小同窗盲目探索的时间。

 

6.将来一段时间的计划

1)      每次的做业保证质量,保证速度,保证掌握,保证收获;

2)      天天拿1-2小时练习JAVA,学习JAVA的课程;

3)      及时回顾知识,总结每一段的学习内容;

4)      键盘敲烂🤣

 

Pete

 2020-04-04

相关文章
相关标签/搜索