类与对象的理解
假如你和多年未见面的朋友安排见面,时间很久你已经记不清他的样子,因此您会询问他一些问题,同时描述自己:180cm,短发,黑色西装等等。
Person类: 属性列表 对象: 我 朋友
name Jack Lee
gender Male Female
height 70’’ 60’’
build Overweight Petite
hairColor Blonde Black
eyeColor Black Blue
clothing Business casual Black suit
可能您还不知道,在这个情景中就用到了两个对象和一个类。类是用于描述对象的模板,是在现实世界中观察到的某些事物的抽象或者简化。可简单的将类分成两个基本组成部分: 描述对象的属性;对象相关的动作行为。
具体而言,类的属性是记录并与对象关联的数据。上面的例子中产生了一个Person类,类的属性有身高,头发长度,衣着等。需要注意的是在这个场景产生之前,Person类中的属性是空的。通过这个情景的产生,不断地相互描述而把空缺的属性填上对应的值。这个过程就是实例化类。实例化类的结果就是产生了对象。所以类是对象的简化,对象是类的实例化。当类中某个属性发生了变化,那么对象的状态肯定发生了变化。类的方法决定了对象的行为,比如上面的例子中,人可以走路,说话,握手等等。类方法用来描述希望与对象关联的操作,通常用于操作对象中包含的数据。
类好比制作蛋糕的模具,可以制作各式各样您所需要的蛋糕,形状,大小,颜色,材料是类的属性。当你没有需求时,这些属性都是空的。当你想制作一个三角形奶油蛋糕,属性被赋值,模具被使用从而制作出三角形奶油蛋糕这个对象。这说明定义一个类并没有定义出一个对象,在使用模板切出蛋糕之前,蛋糕并不存在。
一个类应该有多少属性和方法,从程序员角度来看,编写的代码越少,出错的机会就越少,只要能完成需要的处理任务就行。总而言之,设计类时需要在简化代码和完成类的设计之间取得平衡。一些程序员喜欢用一些巧妙地代码完成设计,只要其他人用不到这些代码,这样做是很好的。如果在商业环境下,巧妙缺不容易让人理解的代码并不是优秀的代码。
实例化类的对象:
假如对第一个情景定义类clsPerson,我们需要朋友类myFriend.实现方法就是clsPerson myFriend.
这时程序要求操作系统在空闲内存里开辟一个空间,储存名为myFriend.但此时它的值为空(NULL)。当我们执行myFriend = new clsPerson();假设需要2000字节来存放关联的数据,那么程序会要求操作系统在内存里开辟2000字节的空间存放这些数据,并把内存地址填写到myFriend里面。myFriend值的作用就是查找相关联数据的地址。