刚接触这本书的时候,首先被封皮吸引了,像是一本小人书,舍友见我拿着一本纸质版的,给看成了“大话西游”,争着要看,等我解释完这是什么的时候,她们都不看了……估计是对这些计算机方面的不感兴趣吧……
大话设计模式(带目录完整版) PDF 下载:
百度网盘免费下载地址:http://pan.baidu.com/s/1i3xbSuL
言归正传,以前看书的时候,拿到手里,从来不看序言部分,但是在米夫子的教导之下,养成了看书先看序言的习惯。所以,看到序言中有这样的一段话:本书第四部分是附录,主要是针对面向对象不熟悉读者的一个补充,通过一个例子的演变介绍了类、封装、继承、多态、接口、事件等概念。于是乎,我直接翻到了最后……
这个例子名字叫做“动物运动会”,由最简单的功能开始,逐步演化,将面向对象的知识层层囊括其中,看书的时候,有种拆墙的感觉,一直在自拆自砌,直到最后达到了既省料,又美观高效的目的才算是结束,组织了一场虚拟的有意思的动物界运动会。
类和实例
类是具有相同的属性和功能的对象的抽象集合;
实例就是一个真实对象,实例化就是创建对象的过程,使用New关键字来创建。
比如说,“人类”是一个抽象的概念,存在于想象中,很是模糊,但是实例化后,就是一个个能感受得到其存在的个体,比如你我他。
构造方法
狗造方法又叫构造函数,对类进行的是初始化。构造方法和类是同名的,无返回值,不需要void,在New的时候调用。
代码中的Cat()就是构造方法,所有的类都有构造方法,如果我们不编码则系统默认生成空的构造方法,若我们有定义的构造方法,那么系统默认的构造方法就会失效了。也就是说,构造方法是为了让我们顺利地实例化。实例化一个类时,就调用了它的构造函数,通过构造函数,可以初始化类中属性值。
上面的例子就是有参数的构造方法,这样的话,当我们想让一个刚刚出生的小猫就有名字时,可以用如下代码实现:
细心的你肯定会发现,就是实例化的代码的基础上,为Cat()构造方法赋予一个初始值而已。就像是一个孩子刚刚出生爸妈就把名字取好了。
我的理解:构造方法提供给我们的是一个自由描述的平台或是空间,也可以说是一个与生俱来的权利,这份权利,我们也许并没有行使,但是它确实存在,当我们想要行使的时候,只需要告诉它我们要行使什么样的权利就行了,比如选举权和被选举权。
方法重载
上边说道孩子出生的时候,父母给取好了名字,若是没有想好名字怎么办呢,难道没有取好名字孩子就不能出生了吗?方法重载帮助我们解决了这个困扰:
方法重载提供了创建同名的多个方法的能力,但是这些方法需要使用不同的参数,即方法重载可以在不改变原方法的基础上,新增功能,算是提供了函数的可扩展能力。
这样,起好了名字的小猫就用带string参数的构造方法,没有名字的,就用不带参数的,即Cat()这个构造函数中,括号里不像上边那样写上string name。
我的理解:方法重载就像是我们平时做计划时为了周全,制定了planB一样,兼顾各种情况,但是各种情况享受的处理办法很是公平,不偏不倚。
接触上边的代码时,看到“无名”二字,让我联想到了博客占位,如果我们规定每周必须写一篇博客,但是有一周很忙,抽不出时间,我们就可以写一篇题为《占位》的空内容博客,待时间允许的时候,再将博客正文补上更新,除了与规定的写作时间不同以外,别的和正常时间发表没有任何区别……(正好照应了方法重载中参数类型或个数必须要有所不同的要求)
综上所述:方法重载是一种临时机制,换汤不换药,达到目的即可。
这篇博客写到这里很长了,为了避免读者的阅读疲惫感,决定换一篇博客继续更新,此乃方法名为“博客”的方法重载,嘻嘻!敬请期待……