继上次博客之后,Java的学习进入到了一个新的阶段, 在这个阶段引入了Java的核心内容之一——多态。
首先,这段时间的学习让我对于我发表的上一篇博客遗留的一个问题有了一个答案,关于构造器的作用,之前的我一直不明白使用构造器的意义是什么,直接赋值不是更加方便吗,而在这段时间的学习中,我明白了构造器存在的意义,有了构造器,这个类才能真正的实现重用,就像是这几次作业中,经常用到的图形类,例如三角形类,类的书写是将三角形的各种相同的性质写入类中,比如说,三角形都有三条边,三条边是否能围成一个三角形的判断,三角形通用的求面积法,这些是在好在类里面的方法和属性,而构造器,则是在创造实例对象时,每个对象中不同的部分的赋值,例如,每个三角形对象中三边的具体长度是不一样的,如果我们需要创建不同的三角形,则只需要在创建对象时输入不同的数值就行。另外还有在不同情况下创建对象,构造器也能起到作用,我们可能会遇到这种情况,在一个程序中,有时,我们只是需要创建一个对象,而数据需要后续来赋值和修改,有时则需要创建一个已经确定好数值的对象,这时候,就可以使用不同的构造器来创建对象了。当然 ,这些只是现阶段我的一些理解和看法。
接下来则是我对于这段时间学习的三次作业上的一个总结。
首先是在第一次作业过程中,引入了三个新的东西,一个是正则表达式,一个是封装性,另一个是继承。第一题的关键就是正则表达式,正则表达式对于我来说是一个全新的东西,在正则表达式的编写上,对于我来说是有难度的,但是正则表达式在格式判断上起到的作用让我意识到,可能以后的我会频繁的使用到正则表达式,比如用户的密码用户名等符不符合格式,输入符不符合格式之类的。第二题则简单带我们认识了一下封装性,即属性全为私有,而通过公有的方法去访问私有属性,当然这只是封装性的一部分。而第三道题就是让我们认识了继承,继承也是多态中一个很重要的概念,子类可以继承其父类的所有方法和属性,虽然私有的属性不能直接访问,但是却可以通过公用的方法对私有属性进行访问。而继承里面一个非常重要的东西,我们必须要掌握的东西,就是对父类所继承过来的方法进行重写。重写的要求是方法名相同,且传入的参数类型,数量要一致。只有这样才能被称为重写。
之后是第二次作业,引入了列表的用法,列表的储存类型可以是基本数据类型,也可以使我们所定义的各种对象。而列表的使用可以让我们储存大量的数据,并可以对这些数据进行操作和处理,而列表和数组最大的差别即为数组是静态的,数组的声明需要有准确的大小,需要交代清楚这个数组的限额是多少,而列表则不然,列表属于动态的储存,有点类似于C语言中的链表,很多时候,我们对于数据的数量不是已知的,这种情况下我们没有办法用数组来进行数据的储存,而且链表有很多常用的方法和属性。这次作业的第二题给我的感觉是比较综合。这道题做需要掌握的东西比较多,当时的我并没有做出来这道题,首先这道题在封装性上,有了一个更加深入的体现,就是几个类之间的相互调用。在者是正则表达式的一个更为复杂的使用,也是用来检查格式是否符合,但是却有着更加复杂的逻辑和判断格式,我在这个正则表达式这块磕了很久依旧没有写好。另外,这道题目还又引入了一个新的知识点——重载。说到重载,就不得不提一嘴重写。这两个东西极其相似,不仅名字相似,结构也很相似,非常容易弄混。重载和重写一样,要求方法名是相同的,但是重写要求在参数上类型和数量完全一致,而重载则要求方法的参数是有所不同的。
第三次作业则主要是接口,第三次作业的第一题就引入了comparable接口,接口的存在,就可以实现统一访问,就是使用接口创建时用接口创建,你创建的对象必须实现了这个接口,而你想用哪个类就可以创建哪个类的对象,两个类中方法名相同,但实现内容不同。Java是不支持多继承的,而接口的使用,在某种程度上可以看做是进行多继承的一种方法。而这次作业的第二题实际上是对第一题进行了一个优化,让我们完善类结构使得系统具有较好的可复用性,进一步深入理解面向对象设计原则中的“单一职责”原则和“开-闭”原则,
进一步掌握接口的作用,以及列表的使用。
经历了又一个四周的学习,我的对于Java的一些理解加深了许多,有一些以前懵懵懂懂的概念也感觉清晰了很多,但是随之而来的是又一波我有些模糊的,不大懂的知识,希望以后能够在学习中找到答案。随着学习的深入,我明显感觉到,面对对象编程的重要性。
这四周的学习在我看来,代码的实现真的非常重要,在上课时,感觉自己听懂了,但是在实际操作的过程中,却能够暴露出很多自己没有注意到,或者已经遗忘,模糊不清晰的地方,而通过各种途径将代码完善之后,这些知识才会真正的在脑子里留下印象。
原文:https://www.cnblogs.com/yuzuru-1/p/12820101.html