【Java面向对象】第二阶段学习总结

 

Java面向对象设计之封装、继承、多态与单一原则、开闭原则及Junit作用总结

 

前言:本次博客对第二阶段的作业情况进行一个总结:

 

第二阶段作业情况如下,整体来说此次作业主要考察类之间的逻辑关系与设计。前两次作业涉及正则表达式方面较复杂的校正问题完成的一般,因此需要进一步深入学习有关知识。最后一次作业较简单,完成度也不错。

 

第二阶段的作业难度远高于第一次,将面向对象编程思想体现的淋漓尽致。第二次作业主要练习训练类之间的逻辑关系,以及每个类的设计原则与优化的方案。针对第二阶段的作业,分为六大方向去总结提高:

一、作业过程总结。

二、面向对象设计心得。

三、测试的理解与实践。

四、课程的收获。

五、对课程的建议。

六、对下一阶段的学习安排。

 

 

 一、作业过程总结

1、知识的迭代:本阶段大作业主要考察的是有关类的封装、多态、继承,所以有关知识的迭代都体现在关于类的设计。所以知识的迭代过程就体现在我们不断的对类的设计优化,其中主要体现了类的单一性原则——即每个类都实现一个功能,和开闭原则——即面向修改关闭,面向扩展开放。

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

①封装性:就是把东西包装起来,成员变量和成员方法的定义都是包装于类定义之中;类的定义可以看成是将构成类的成员变量和方法封装起来。

 

②继承性:继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。继承使得代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性;提高代码的重用性;子类可以形似父类,但又异于父类;提高代码的可扩展性,实现父类的方法可以为子类用。

 

③多态性:多态性是建立在继承的基础上的,而且常常会和抽象父类来使用。一个父类产生了多个子类,这些子类个不相同,具有直接独特的属性以及方法,这也就叫做多态性。更确切的说多态指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态。

 

3、遇到的问题及解决方法:

①正则表达式的使用:本次大作业是前两次各有一题使用正则表达式,所以在使用起来的时候遇到了许多麻烦,主要在于校对格式非常麻烦、耗时间、繁琐。

②tostring方法的使用:每个类里面对象都有一个系统给的tostring方法,如果不去重写的话就会去输出一些特殊的东西,重写就可以输出你想要输出的形式,这样更为的方 便。

③对象的ArrayList、LinkedList的使用:

起初简单的认为list只是一个简单的用于处理数据的工具,当看到作业中类图设计中的:“list:List<Term>=new Linkedlist<Term>()”,通过学习了解才知道,这是list的实 例化,里面的元素类型可以是String、integer、对象名等等,还有就是不知道怎么转化为LinkedList去使用。

 

4、作业花费的时间比例:前两次大作业花了非常多的时间,最后一次作业轻松完成。主要原因,前两次大作业中均涉及正则表达式处理较复杂数据问题,需要不断测试、调整、优化,比较复杂,在这些方面需要继续加强学习。

5、对编程过程的严谨性的认识及教训:要看清楚题目程序功能的要求,注意细节;而且尽量做到完成一个部分功能,就进行测试, 这样比一下子写完整个最后慢慢调试更节省时间。

 

二、面向对象设计心得

在面向对象设计过程中,首先熟悉Java本身提供的一些基础类去解决问题,其次按照需求和功能恰当设计相应类解决每一个小问题,并将它们有机结合从而解决问题。在设计类时主要注意每个类都应该切记简捷,重视单一原则和开闭原则。

 

三、测试的理解与实践

1、测试对于编码质量的重要性:能通过所有测试点,是一个程序的基本要求。在测试时首先要考虑所有正常数据和操作的测试点,然而这是远远不够的;我们还有个考虑到一些特殊的情况或者边界值的问题,特别是在处理实际问题,要考虑到用户操作和输入数据的所有情况,并逐一实现、解决。

2、每解决一个问题,都进行测试,这样可以大大减轻后续最后的调试繁琐度。使用Junit进行程序的测试:JUnit是Java单元测试框架,是专门给程序测试用的,使用Junit来测试程序可以 让你的条理更加清晰,而且当某个功能出现问题时,可能通过单元测试很容易的定位和解决问题,用Junit可以更好地去测试程序去发现问题。

3、 在测试和调整正则表达式时,可以通过网上的一些特殊网站进行测试这样更加的简洁方便。

 

四、课程的收获

通过这一阶段的学习,无论从技术还是思想方面更加升入体会到面向对象编程的特点。学会了如何用面向对象的三大使用性质去更好的解决问题;学会了对list类的使用;学会了恰当使用Comparable 接口重写方法去处理数据。

 

五、对课程的建议

首先课程比较注重讲解和分析面向对象设计的思想,通过农夫过河问题、汽车雨刷问题等一些例子,形象的讲述了继承、多态问题和类设计的单一原则思想及开闭原则。确有点轻视Java基础功能技巧的介绍与学习,希望后续重视Java的基本功能技术的提高。

 

六、对后一阶段的学习安排

下一阶段将继续夯实和不断学习Java程序设计的基础技能,并在程序设计和类的设计、逻辑关系、优化等方面多下功夫。

 

猜你喜欢

转载自www.cnblogs.com/chengyindong/p/briefb.html
今日推荐