在讲面向对象之前,首先我们要理解一个概念,叫作抽象。
抽象,就是将复杂物体的一个或几个特性抽出去而只注意其他特性的行动或过程。
说这个可能你们可能还是不懂什么叫抽象。
那么,还是使用一个自然模型来解释这个问题。
每一只大象,都有一个长鼻和一对大耳朵。这是他们的两个共同特征。但是每只大象的长鼻的长度,耳朵的表面积都是不尽相同的。
那么忽略大象长鼻的长度,耳朵的表面积,只考虑大象有长鼻和一对大耳朵、是动物的特性,就是抽象的一个过程。
那我们就可以笼统的定义,有长鼻和一对大耳朵的动物就是大象。
于是,我们分别是大象或不是大象就有了一个你我公认的标准。
而这个标准,在面向对象中,成为类。
那我们来试试想想,如果想写一个人类的定义标准,或者说是类。
人类,哺乳动物,有双手、双脚,有心脏等等。
人类的是哺乳动物,有双手,有双脚,有心脏这些特性,就是一个类的属性。
在上面,我们都只考虑的这些属性的质,而没有考虑这些属性的量。比如人类有双手这个属性,它的量可以是双手的大小。有心脏这个特性,它的量可以是心跳速率。
人类当然不止有属相,也有行为。比如说人类会走,会跳舞等等。而人类会走,会跳舞这些行为,在面向对象中称之为操作。
那么,一个具体的对象与类之间的关系是什么呢?
对象的抽象就是类。
类的具体化就是对象,或者说是类的实例就是对象。
那么怎么解释这上面两句话呢?
每一个具体的人,比如说笔者我,是一个具体的对象,而我是一个人类。你,我的读者,是一个具体的对象,也是一个人类。也就是说,我和你是同一类的对象。将同一类对象进行抽象,抽象得到的结果就是类。
那么类的具体化是什么个操作呢?(还有这种操作?)
你要明白,类其实是我们所想象出来,而并非实体、实物。而类的具体化这个操作,就是赋予类具体的属性,具体的行为,是实体,是我们眼睛看得到,手摸得着的。
比如把人类进行具体化,首先我要给我要给他(她)取一个名字,比如叫Cheney Ni,有性别,男,然后再给他的属性附上一个具体的量。
然后他就变成了一个对象。我们称他为Cheney Ni。
Cheney Ni的路还很长,之后我会教大家如何让Cheney Ni跳舞,如何让他繁衍后代,如何突破人类的极限,学会人类不会的行为(也就是类的操作),让他的抽象化成为一个新的类。
网友评论