7.10 类和对象的区别
前面介绍了有关面向对象的几种观点,应该已了解了面向对象编程。但再补充一些面向对象编程必不可少的知识。
首先,要说明一下类和对象的区别。在面向对象编程中,类和对象被看作是不同的概念而予以区别对待。类是对象的定义,而对象是类的实例(Instance)。经常有教材这样说明二者之间的关系:类是做饼干的模具,而用这个模具做出来的饼干就是对象。虽然这是个有趣的比喻,但如果这样类比的话,就有可能无法看清二者在实际编程中的关系(如图7.6所示)
图7.6 类和对象的关系就像饼干模具和饼干的关系
在之前的代码清单7.2所示的程序中,定义了一个类MyClass。但是还无法直接使用类MyClass的成员,要想使用就必须在内存上生成该类的副本,这个副本就是对象(如代码清单7.5所示)
代码清单7.5 先创建类的对象然后再使用(C++)
MyClass obj; //创建对象
obj.Variable=123; //使用对象所持有的变量
obj.Function(); //使用对象所持有的函数
先要创建一个个的对象然后才能使用类中定义的成员,对于面向对象语言的初学者而言,会认为这样做很麻烦。但也只能这样做,因为这是面向对象语言就是这样规定的。可为什么要确立这样的规则呢?原因是即便是在现实世界中,也有类(定义)和对象(实体)的区别。举例来说,假设定义了一个表示企业中雇员的类Employee,如果仅仅是定义完就可以立即使用类Employee中的成员,那么程序中实际上就只能存在一个雇员,而如果规定了要先创建类Employee的对象才能使用,那么就可以需要多少就创建多少雇员了(通过在内存上创建出类Employee的副本)。在这一点上,稍后将要介绍的具有两个文本框的Windows应用程序也是如此,也就是说这个程序创建了两个文本框类的对象
这样的话,就更能理解“类是做饼干的模具,用模具做出来的饼干是对象”这句话的含义了吧。有了一个做饼干的模具(类),那么需要多少就能做出多少饼干(对象)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论