OO第二次作业总结

  1. 前言

作业考察了对面向对象的封装性、继承性与多态性的理解,难度大幅度提高,直观体现在代码长度上。代码复杂度也大幅提高。

 

  1. 作业过程总结

 

①总结三次之间的作业迭代关系

这三次作业分别是第四次作业、第五次作业、第六次作业。

前者最为简单,正则表达式、类的继承的基础使用,有PDF里的图已经讲的比较清楚,主要在填充代码

中者引入了面向对象的多态性,对我的从抽象思维进行了一次大考

后者更进一步,初探接口的定义与使用,复杂度激增

 

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

完成前者的过程中体会了面向对象中的封装性和继承性,了解到Java中方法的使用就是一种封装,还有就是用private关键字实现封装。利用基类和派生类可以优化代码。

后面两次作业让人对多态性从陌生到理解,大大减少了重复编码,降低了工作量,提高了效率。

 

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

问题一:在完成作业的过程中数学问题

作业过程中的数学问题常常难道我,花了大量时间百度怎么解决,用后很容易忘记,下次作业往往还要百度。还经常因为数学问题导致全部错误,非常头疼。三角形的三边不知查了几次了,很影响效率

 

问题二:Java语法错误

中英文标点导致的格式错误和忘记在句末带上“;”经常在在这些小问题上犯错非常头疼,幸亏编译器非常智能,很好的提示了我。

 

问题三:难以将现实世界中的实际问题进一步抽象

水纹数据让我一头雾水,无从下手,密密麻麻的大量数据让我头晕,最后未能在作业限时中完成任务。

 

问题四:在PTA遇到“代码长度超过限制”的问题

最后一次作业中的第二题再提交时因代码过长无法完成提交,水平很有限修改后也没有多少改善,无奈作罢。

 

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

第五次作业:第六次作业:第七次作业=2:3:4

作业的确是越来越难了,不过这也很正常,毕竟代码越写越长。

 

⑤对编程过程的严谨性的认识及教训

严谨性一直是我缺乏的品质,在之前的编程经历一再反映出我严谨性的缺失,之前的代码长度和复杂度尚可还不足以带来大麻烦,在最近三四百行的考验下,挫败感强烈,东改西改非常耗时,烦躁。常常几个小错误就导致结果完全错误。

 

还有就是复杂问题的分解和拆分也是我的大弱项,无法把复杂问题拆分成简单的问题,或者拆得不彻底,出差错。这个出错往往要对程序进行大手术。

 

总之,我在编程的过程中一步一阻,没有较为顺畅的完成过,对积极性打击略大。我会想办法克服,应该是我一贯解题思路的问题。

 

  1. OO设计心得

①面向对象三大技术特性之间关系的理解

首先是封装性,利用方法封装或者使用访问权限修饰private实现对封装,可以起到保护内部、方便外部使用的作用、让代码模块化,可以像零件一样可以更换使用。

其次是继承,继承,可以让子类被视作一个父类。通过这样的特点,我们可以用一种归一化的方式来处理一系列继承自同一个父类的所有子类对象,并且会自动地,根据处理对象实际类型的不同,实现不同的效果,而不需要去关注他到底是什么子类

多态举例说明,既然狗,猫都是动物,那么调用动物.叫()时,狗有狗的叫法,猫有猫的叫法,这不是非常自然地吗。所以多态是指向消息接收者(多态变量)发送相同的消息,能够获得不同的响应

 

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

单一原则就是一个对象或者一个方法,只做一件事。

 

③OO编程思维的理解

尽量通过扩展软件实体来解决需求变化,而不是通过修改已有的代码来完成变化。

④类设计心得

3.测试的理解与实践

①测试对于编码质量的重要性

②查阅资料,假设使用Junit进行程序的测试是否可行

4.课程收获

总结这四周来在OO方面的教训及收获

5.对课程的建议

①第三阶段作业难度、题量的建议

②课程内容讲解方面的建议

posted @ 2020-05-02 23:12  iANDalli  阅读(98)  评论(0)    收藏  举报