Java阶段性总结1—Rcombo
①总结三次作业之间的知识迭代关系:
三次作业中,第一次pta作业和以前的C语言作业并没有多大的区别,我认为主要是让我们熟悉Java语言和C语言的书写格式和输出方式的不同,
但到了第二次pta作业,已经逐步让我们培养让我们从面向对象的思维去解决问题,不过大部分还是用到了从语言函数的知识去解题,到了第三次作业,作业要求已经让我们运用类的思想去解决问题,逐步从面向过程的的思维中逐渐走出来,在作业中已经让我们强制性的用一些规定的类去解决问题。
总的来说,3次pta作业,帮助我们逐渐的脱离C语言的思维束缚,正真进入到面向对象的思维里面,虽然题目和以前的C语言题目类似,但需要用不同的思维去解决问题。
②如何通过作业逐步从面向过程过渡到面向对象:
第一次作业还是在利用面向过程的思维,就比如计算税率,算然已经学习了Java,但是和学C语言写出的代码几乎一摸一样,主要原因还是对类的定义和运用的方法并不深刻,到了后面的几次作业,作业中开始在题目中强制性的运用一些类和UML类图,让我们按照这些思路解体,逐渐改变我们的思考方式。
③作业过程中遇到的问题及解决方法:
第一次作业中因为利用的是面向过程的的方式去解决问题,所以是代码过于繁琐,又因为数据过于庞大,只能一个数据一个数据的去对比(24个数据,每一个都不一样,且几乎都是5位数),在switch语句中一个一个去尝试看是哪一行出现了问题,导致修改时间太长,整整用了一个半小时。
而在第三次作业中,需要在一个类中调用另一个类的数据,这方面自己的知识体系完全不够用,对与面向对象的依赖,关联,聚合关系理解的不够透彻,是自己在编写代码而过程中调用数据时频频出错,无法完成代码的编写,只能课后自己在网上搜索资料对这方面知识经行补充加深。
④每次作业花费的时间比例:
第一次作业花费的时间较少,虽然过程繁琐,但因为思考的东西不多,只要细心是可以去完成的,第二次作业中,很多题的函数可以通用,除了第一个题编写函数用的时间稍微长了一点以外,其他的题目效率很高,而第三个题目中,类的种类已经由题目给出,无需再进行思考,而最耗费时间的,则是如何编写一个好的算法来进行解题和调用类
的数据,这些方面花费的时间过于长了,此外,编写完成后对于程序的修改和完善,也要耗费大概半个小时的时间。
⑤对编程过程的严谨性的认识及教训:
因为Java只支持面向对象一种编程范式,只支持一种范式,再也不能像别的语言那样写成一个独立的函数,而是必须包在一个没有实际作用的类里面(网上借鉴)。
只支持一种范式
二.OO设计心得
①面向过程与面向对象的比较:
面向过程:就是将一个问题的解体步骤分析出来,设计出这些步骤所需要的函数,然后一个一个的调用,将他们串联起来,简单来说,就是更看重算法和过程,比如要做某一个项目,先怎么样,再怎么样,最后怎么样。第一样应该如何完成,第二样应该如何完成等等。等到每一步骤都完成,项目也就完成了。
面向对象: 面向对象就是把构成问题的事物分解成各个对象,这些对象需要什么样的行为才能完成问题,基于对象,方法是类,比如农夫送🐏,🐺和草过河,我们只需要关注🐏的位置和行为,🐺的位置和行为(吃羊不吃草),和草的位置,设计出这些属性的方法,一个类不用去管另一个类的行为
②面向对象设计的基本原则理解:
单一职责:每一个类只做一件事(仅仅对这一个职责熟悉,其他的下次再写)
③OO编程思维的理解:
编程时,第一步先找出解题所需要的各个不同性质的的类,思考类与类之间如何才能根据每一个类的行为完成整个题目,这是最好画出UML图来帮助自己解决类的属性和方法问题,才能够将题目的要求理解的更完整,注意类与类之间的职责不要重复,待到这些工作做完后,在逐步写出每个类中详细的代码,r最后写出主函数需要的过程,然后进行数据的测试,检查自己代码哪一个部分出现了问题,再逐一修改。
三.测试的实践与理解
①测试对于编码质量的重要性:
当代码的结果是由一个数字变化而成时,或者答案有几个时,如果答案与本身的标准答案不符合,使用测试可以更快的帮助程序员找到是哪一个环节出现了错误,不用在全片幅的看代码,节省时间。
②假如让你设计测试用例,你会如何做:
用JUNIT4写一个测试代码,测试每一个参数是否跟预期一样,依次改错。
四.课程收获
自己对于面向对象的的概念有了一个更深的认识,逐渐从面向过程的思维中慢慢转变过来。学会了画出UML图来帮助自及理解题目,自己设计类的属性和方法时,虽然觉得很难,但也可以锻炼自己的思维,代码看起来也可以找到很多的不足
五.对课程的建议
在今后老师讲述到Java本质上的区别时,麻烦稍微慢一点,对于类与类之间的关系,希望老师在今后的例题讲解中多使用不同种形式编写程序。课后的pta作业,希望能发一个最简便的标准答案,方便我们核对和找出算法的不同。
浙公网安备 33010602011771号