学习Java第二阶段

学习Java第三个月,对Java有了更深入的了解,在最近一段时间主要学习了继承,封装,多态,相比第一阶段的学习这一块的知识复杂了很多,但也有很多相似相仿的板块,在学习上花了更多时间钻研和更多同学一起讨论,提出问题再想出解决方案,最后一起解决问题,总体而言这段时间的收获大了很多,在面对问题时也有了更多的想法和方案。

1.作业过程总结:

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

这段时间的作业这要有水文数据校验及处理,蒙特卡罗方法求圆周率,图形继承与多态,一元多项式求导,主要考察了类的继承、多态性,图形类的继承,在解题上有相似的思路,如图形继承:有一个类Shape,无属性,有求图形面积的公有方法,再通过子类Circle和子类Rectangle均继承shape,区别圆和矩形, 再根据需求设计类Ball,继承自Circle;类Box,继承自Rectangle。子类父类一环套一环,把任务细化,也方便了修改。在下一次的图形继承与多态中也提供了模板。


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

封装性是Java的重要的一个特性,把对象的属性和行为进行封装,通过setXxx()和getXxx()的方法隐藏具体实现的细节;继承性就是将类分为父类及子类,通过extends来实现子类继承父类的全部属性和行为,同时也有自己的特有的属性和行为,利于代码的复用和后期修改;多态性是多个不同方法共存,使用方法的重写来实现类的多态性,父类通常定义为抽象类,在抽象类中给出一个方法标准,而不给出实现的具体过程,通过继承父类来实现。
③作业过程中遇到的问题及解决方法

作业中由于刚接触继承有很多不熟悉的方法以及对属性和行为私有和共有的使用,以及继承时的调用不熟悉,再通过向同学的请教和通过上网查询大部分问题都得到了解决。
④每次作业花费的时间比例

相比刚开始学习Java时的时候花费的时间多了不少,现在更多的时间是用在和同学讨论解决问题方案,和自学Java知识,总体而言会花大概两三天的时间完成每次作业。
⑤对编程过程的严谨性的认识及教训

在编写程序时有很多次写出低级错误,甚至出现单词拼写问题,还有在区分主函数时“;”的位置放错,导致检查错误时花费了很多时间,同样也得到了编写程序时提前写好“;”的习惯。
2.OO设计心得
①对面向对象三大技术特性之间关系的理解

面向对象三大技术特性是:封装、继承和多态。封装是指事物的属性和行为包装到对象中,只对外公布公开的属性和行为,也是可以有选择性的公布给其它对象。在java中可以使用private、protected、public三对外部对象访问该对象的属性和行为进行限制。继承是分为父类及子类,通过extends来实现子类继承父类的全部属性和行为,同时也有自己的特有的属性和行为,类似于大自然中的父代和子代遗传。多态性是指允许不同类的对象对同一消息进行响应。多态性包含了参数化多态性和包含多态性,其语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

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

单一职责原则是规定一个类应该只有一个发生变化的原因,而解决则是遵守单一职责原则,将不同的职责封装到不同的类或模块中,体现了面向对象三大技术特性之一封装的特性。“开-闭”原则是面向对象设计中最重要的原则之一,是指在设计软件的时间要时刻考虑,尽量让这个类是足够好的,写好了就不要去修改,如果有新的需求,通过增加类来实现新需求的功能,原来的代码能不动就不动。
③OO编程思维的理解

根据需求,将需求分解,拆成多个小的问题,再制定相应的父类和子类去实现需求。
④类设计心得

类的设计决定了编写程序的思路也影响了编程的时间,效率和质量,所以在编写时提前设计好类看起来花了不少时间,但大大提升了编写效率和质量。
3.测试的理解与实践
①测试对于编码质量的重要性

测试在编写代码中十分重要,代码的实现需要思路的正确和编写的正确,,只有将代码正确无误编写,才能实现需求,在类的设计上就要注意减少程序的逻辑错误。

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

Junit作为常用的单元测试的工具在多数Java开发环境中极大的使用。
4.课程收获
总结这四周来在OO方面的教训及收获

相比第一阶段的学习这一块的知识复杂了很多,但也有很多相似相仿的板块,在学习上花了更多时间钻研和更多同学一起讨论,提出问题再想出解决方案,最后一起解决问题。有在区分主函数时“;”的位置放错,导致检查错误时花费了很多时间,同样也得到了编写程序时提前写好“;”的习惯。
5.对课程的建议
①第三阶段作业难度、题量的建议

难度希望不要跳跃式增大,题量可以根据难度适当上下调整。
②课程内容讲解方面的建议

希望更加细致,照顾到不同学习情况的同学。

猜你喜欢

转载自www.cnblogs.com/OzzieD/p/12819067.html
今日推荐