第二阶段作业总结

Posted on 2020-04-30 23:22  在线ddl  阅读(110)  评论(0)    收藏  举报

0.前言

这一阶段的作业我们平时称为大作业,相对于此前的三次作业难度上有一定的提高。

 

1.作业过程总结

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

这三次作业主要是在前一阶段所学的基础上对Java语言的特点进行更深的学习与探索,主要是锻炼我们对于Java的三大特性:封装、继承与多态的运用能力。

第四次作业三道题总体来说除第一题外难度不是特别大,第二第三题差不多都是关于封装及继承的运用。第一题题目较复杂,但如果拆散分为多个小问题的话总体思路其实并没看起来复杂,但其中还是有许多其他知识点的相关运用。并且本周老师也抽了一节课特地让一位满分做出来的同学给我们分享了他的写题思路,也让我有很大的收获。

第五、六次作业总题难度较平均,个人感觉第六次有接口相关可能是我没掌握熟悉所以感觉难度稍大,这两次作业大体都是对于继承多态的运用,第六次涉及了部分接口相关的知识。

 

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

面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个类中,有些属性是不希望公开的,或者说被其他对象访问的,所以使用private修饰该属性,使其隐藏起来。封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。在面向对象的编程语言中,对象是封装的最基本单位,面向对象的封装比传统语言的封装更为清晰、更为有力。而在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,使用extends关键字实现继承;子类中可以加入若干新的内容,或修改原来的方法使之更适合特殊的需要,这就是继承。继承是子类自动共享父类数据和方法的机制,这是类之间的一种关系,提高了软件的可重用性和可扩展性。多态就是在声明时使用父类,在实现或调用时使用具体的子类;即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性,多态增强了软件的灵活性和扩展性。这里可以举个例子,比如声明时使用的是动物类,调用时传递的是一个猫类(动物类的子类)的对象,具体执行父类里动物——吃的方法时,实际执行的是猫——吃的方法。

在本阶段作业中题目大多会有明确要求运用什么特性,根据题目的要求在上面对于这些特性的理解上加以运用,有时会收集其他人的代码来体会其他人是怎么将这些运用进实际问题的解决之中。

 

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

说白了在做题过程中遇到困难大多都靠自己上网收集资料再自己苦想。有时会向自己已经学过的朋友请教下。我感觉对于编程问题很多时候最需要的是自己的理解,毕竟只有真正理解后才能在不同问题中用不同的方法去运用,而且想了解他人的问题也需要花费时间去研究对方的代码才会明白对方的错误点在哪。

 

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

这阶段作业由于部分其他因素我个人总体所花费的时间都较长,总时间比例差不多是3:2:2。

 

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

       通过本阶段作业,我对于编程所需的严谨度有了更深的认识。编程本就是语句间、方法间或是类之间都有着严谨的关系,逻辑要求较高,条理也要清晰,这样才能使一个代码完美发挥其应有功能。

 

2.OO设计心得

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

封装使大量的冗余代码减少,将复杂的功能封装起来,对外开放一个接口,简单调用即可。继承则是减少了类的冗余代码,让类与类之间产生关系,为多态打下基础。多态则包括了:虚方法、抽象类、接口等功能。

 

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

开闭原则:

设计的时候时刻要考虑、尽量让这个类是足够好,写好了就不要去修改了,如果有新需求来再增加一些类就行,原来的代码能不动则不动。

 

单一职责原则:

一个类只负责一项职责,应该有且只有一个引起它变化的原因。

 

③OO编程思维的理解

       从被动方中寻找一个对象来完成我所想要的功能。

④类设计心得

       类是Java中十分重要的部分,是一个或多个方法的合集,设计类的时候需要根据题目的要求思考自己需要有哪些方法,这些方法间互相又有什么关系。

 

3.测试的理解与实践

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

      

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

       JUnit是一个Java语言的单元测试框架。在开发软件的过程中,用户需要实际运行所编写的代码以确保程序的正确性,而当软件变得越来越大,再去添加新的功能或做一些新的改动时,就很容易带来新的问题,甚至会使程序无法正常运行。然而要手动的运行代码,测试代码的可行性是非常耗费时间的事情,所以为了减少这种手动测试,可以通过创建单元测试来自动完成测试的工作,即使用Junit进行程序的测试。

 

4.课程收获

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

       通过这个阶段的学习,自我感觉对于面向对象的理解更深了,但在实际的编程方面自己仍需要更多的练习。

 

5.对课程的建议

       老师上课我感觉效果还是可以的,只是我自身原因理解简单但要去运用则需要额外的时间去锻炼,希望能有更多的锻炼时间吧。

 

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

由于我个人基础较差的缘故,我希望能够给更多些时间让我能在网上多自己找些资料,在做题过程中加深对课程所学内容的理解与掌握。再者其他科目作业也较多,有时作业累积起来时间上确实太过紧迫,经常会熬夜到很晚,影响第二天课程。

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3