关于JAVA面向对象程序设计总结(阶段2--面向对象编程思想的初步认识,类与类之间关系的初步学习)

0.前言

  本次博客,主要针对于经历第二个月的Java程序设计的学习之后,进行的相关分析与总结。于该阶段中的作业情况,重点在于让我们初步了解面向对象编程思想,对对象的封装性、继承性、多态性的熟悉,类图的使用,抽象类以及接口,初步了解类与类之间的所能够产生的关系并且尝试去使用,以及自学了正则表达式的使用。

1.作业过程总结

  于第二阶段的学习过程之中,我们进行了3次作业的练习,我们很容易发现该阶段的作业难度相较于上一阶段,有了极大幅度的提升,在这一阶段的学习之中,我们相较于上一阶段,学习了对象的封装性,继承性以及多态性,认识了类图,从中理解到了对于同一类型的类的简便的处理方式,也逐渐开始尝试自己设计程序。我们也逐渐在程序设计的过程中,更加的注意起了不同的类之间的低耦合性要求。

  从作业的内容上看,我们可以发现,作业内容是由继承过度到多态再过渡到了抽象类,这种布置作业的方式让我们从继承到抽象类按照应用的流程一步步的深入的了解,以及其中所有的题目都是由类来完成的,在这个过程中于,我们也充分的意识到了类可以为我们编程带来多大的方便。作业过程之中,我们注意到,我们添加了每一次作业的作业指导书,让我们对题目的解答可以更加的完善,也锻炼了我们对所提出的要求的处理能力。于指导书中,我们通过看老师所给出的类图,在看的过程中,也在学习着编程中单一职责原则思想,对类的构造的基本套路已经熟知。我们还对正则表达式的内容进行了自学,并且还有两次作业使用到了正则表达式,题目的难度也相对高一些,于此过程中,注意到了正则表达式是一个需要极其严谨的使用的工具,因为正则表达式的使用要求考虑到每一种可能出现的情况。这一次的作业中还存在了许多关于多态的题目,不过在本次作业中,并没有那么的作为难点的形式存在。主要的难点,还是集中在了和正则表达式有关的部分。从我本人投入作业的时间上面来看,第四、五次作业所消耗的时间还是相对要多一些,主要是花在了和正则表达式有关的部分,初步估计这两次左右应该分别都花了20个小时左右,而最后一次作业只花了6个小时就做完了,可见与正则表达式有关的部分为本次作业的主要难点。

       不过于作业之中,我们也同时遇到了很多的问题。以下为问题以及问题分析和解决方案,

(1).正则表达式的校验的准确性的问题:

  如图所示,如同玩笑一般的全部出错。很严肃的说,这就是因为个人的不严谨的行为所导致的后果,结果就是这么的残忍,一分没得,这一点无疑对心理也有着巨大的打击。不过在这一方面出现错误和其他的程序错误又存在着不同,这一处错误我们可以很清楚的知道我们出现错误的位置在哪里并且可以很快速的去解决问题。不过其中存在最大的问题还是在于其中错误的难以发现,因为我们生活之中习惯了对数字的直接处理,而在正则表达式中看中的是对字符串的每一个字符的判断,这一点就在一定程度上与我们自生的判断方式会产生不同,所以我们在对表达式进行检查的时候,经常会因为自己的思维惯性而导致自己忽略其中的错误。所以对于正则表达式的校验方面,我们必须去承认我们要绝对的注意细节问题。因为这几道题确实给予了我特别大的冲击,所以可能对细节这一点的强调要更多一些。

(2).Comparable 接口与Comparator接口的运用的不理解:

  在第三次作业中,要求我们用到了Arraylist 以及Linkedlist之中的sort方法,而这个排序方法的主要原理还是和Comparable或者Comparator中的函数规定的返回值由相应的关系,但是在刚刚开始写这一次作业的时候,并没有真正理解关于sort方法的作用原理,只是把它的排序方式当作一种约定俗成的东西给记了下来。但是当看到题目出内容和排序方式正好相反时,的确是进入了一种束手无策的状态之中。最初的想法是如何可以把整个重新排列的列表倒过来,后来发现做不到之后就开始进行对Comparable的重新学习,之后才得以完成。

2.00设计心得

  在本次作业中,我们重点在于了解封装性、继承性、多态性这三大面向对象的技术特性。首先我们看到关于类的封装性这一点,我们都知道,我们在面向对象程序设计编程中,用类,来表达一个事物或者一类失误的总和,每一个类之中都只会装有关于它所管理的事物所应该有的一系列方法,这一切,都被包装在了这一个类之中,而且我们知道,类与类之间还有关联,聚集,依赖以及泛化4种关系,我们在编程的时候,利用这几种类与类之间的关系,我们也可以利用他们之间的关系,写出更好的关系。而讲到继承和多态性,那就有太多可以说了。在这里,我们充分感到了这两个性质给我们带来的方便。对于一系列同一类型的事物,我们统统都可以用继承来把他们框起来,之所以认为继承极其的好用是因为继承中的父子类之间的关系和我们人类的思维方式有极大的耦合性,所以对于我们编程人员来说,这种性质的出现使我们对代码的写入的思考提供了极大的便利,对代码的可读性相较于C语言也给予了极大的提高,使得其中的代码可以得到更好的维护,多态的产生使得程序拥有了接收到一条指令做出多种操作的功能,这一点使得我们只需要一直引用一个类,确可以得到多种效果,不得不说,这一思想也和我们人类个体对群体号令的形式不谋而和,这真的使得我们的编程思想得到了巨大的便捷,也让程序更加的强大,这一性质的产生对于面向对象思想中的开-闭原则产生了极大的推动,有了这一性质,在原有的基础上加入性功能变成了一件很容易的事情,只需要在它的引用中加入一个类的内容就足以完成,这对程序的维护提供了巨大的帮助。

3.测试的理解与实践

  测试的存在是为了能够提高我们的代码质量,因为我们所写出的代码最后产生的程序是给用户使用的,我们对程序不断的进行测试能够使得我们所写出来的代码更加的细致,符合评判者的要求,也就质量越高。对于测试,其实仔细想,也就是把写的程序所应该完成的功能一一确定是否可以通过,以此来保证当代码产出后,能够得到用户使用满意的答复。

4.课程收获

  于第二阶段的学习过程之中,学习了对象的封装性,继承性以及多态性,认识了类图,从中理解到了对于同一类型的类的简便的处理方式,也逐渐开始尝试自己设计程序。我们也逐渐在程序设计的过程中,更加的注意起了不同的类之间的低耦合性要求。自我学习了正则表达式,在此过程中特别深刻的认识到了在该行业,严谨的重要性以及犯错的恐怖程度,此处容不得一丝马虎。

5.课程建议

        在学习过程中的对内容的学习还是极其满意,希望在接下来Java中的数据结构之中的题目更具挑战性,以及正则表达式的相关内容也可以再次进行考察。

posted @ 2020-04-28 22:00  aboutzr  阅读(246)  评论(0)    收藏  举报