主题:什么是面向对象思想?
QXVC
[专家分:60] 发布于 2009-09-03 10:08:00
我是一名计算机专业的大一学生,刚学完了《面向对象程序设计》课程。但是别人问起:什么是面向对象思想的时候,我竟然不知道怎样回答。
我查阅过百度上相关问题的回答,发现这些回答都是单纯的列举C++模块功能,譬如建立类、类的继承与多态性……
我相信跟我一样学过C++的人都会认为这是废话,所以我恳请各位有经验的高手给我这位后辈实质性地阐述一下开发软件中的面向对象思想到底是何物?
如能赐教,本人不胜感激!!
回复列表 (共11个回复)
沙发
shujujiegou01 [专家分:1070] 发布于 2009-09-03 11:34:00
对象就像个体的人,生而入世,死而离世。 首先,看看一个对象是如何出生的: 14 Person aPerson = new Person("小王", 27); 那么一个人又是如何出生呢?每个婴儿随着一声啼哭来到这个世界,鼻子是鼻子、嘴巴是嘴巴,已经成为一个活生生的独立的个体。而母亲的怀胎十月是人在母体内的成长过程,母亲为胎儿提供了所有的养分和舒适的环境,这个过程就是一次实实在在的生物化构造。同样的道理,对象的出生,也是一次完整的构造过程:首先会在内存中分配一定的存储空间;然后初始化其附加成员,就像给人取个具有标识作用的姓名一样;最后,再调用构造函数执行初始化,这样一个对象实体就完成了其出生的过程,例如上例中我们为aPerson对象初始化了姓名和年龄。正如人出生之时,一身赤裸没有任何的附加品,其余的一切将随需而生,生不带来就是这个意思。对象的出生也只是完成了对必要字段的初始化操作,其他数据要通过后面的操作来完成。例如对属性赋值,通过方法获取必要的信息等。
板凳
martine [专家分:4950] 发布于 2009-09-06 15:48:00
我对面向对象的理解是:
1、 我是设计者, 使用者就是对象.
2、 在程序开发时,每一个窗口、控件都是对象,我们先用鼠标点击需要出现的东西,这个东西就在设计屏幕的某个地方出现了,这就是对象是对象,这个对象可以是窗口、表格、按钮、一条线、一段文字等,我们看到它,然后点击它,就可以设计它的大小、颜色、动作等,这就是面向对象设计。
而过去设计程序时,是先打开一个窗口,向里面写入相关代码,保存成程序,程序运行时由代码再生成对象。
3 楼
donglipeng [专家分:10] 发布于 2009-09-14 21:42:00
面向对象程序设计Object Oriented Programming指一种程序设计范型,同时也是一种程序开发的方法论。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性
4 楼
nbshff [专家分:0] 发布于 2009-09-27 16:02:00
怎么只有这么少的人回答啊。高手去哪了。
5 楼
nbshff [专家分:0] 发布于 2009-09-27 16:05:00
[quote]对象就像个体的人,生而入世,死而离世。 首先,看看一个对象是如何出生的: 14 Person aPerson = new Person("小王", 27); 那么一个人又是如何出生呢?每个婴儿随着一声啼哭来到这个世界,鼻子是鼻子、嘴巴是嘴巴,已经成为一个活生生的独立的个体。而母亲的怀胎十月是人在母体内的成长过程,母亲为胎儿提供了所有的养分和舒适的环境,这个过程就是一次实实在在的生物化构造。同样的道理,对象的出生,也是一次完整的构造过程:首先会在内存中分配一定的存储空间;然后初始化其附加成员,就像给人取个具有标识作用的姓名一样;最后,再调用构造函数执行初始化,这样一个对象实体就完成了其出生的过程,例如上例中我们为aPerson对象初始化了姓名和年龄。正如人出生之时,一身赤裸没有任何的附加品,其余的一切将随需而生,生不带来就是这个意思。对象的出生也只是完成了对必要字段的初始化操作,其他数据要通过后面的操作来完成。例如对属性赋值,通过方法获取必要的信息等。[/quote]
你回答的好经典啊
6 楼
夜的深呼吸 [专家分:0] 发布于 2009-10-04 22:41:00
我觉得一楼回答得挺贴切的
很容易懂,其实面向对象的思想挺抽象的
我刚开始接触的时候感觉好迷糊,你只要慢慢去感受了就知道它很美妙
7 楼
lsrwan [专家分:0] 发布于 2009-10-11 13:04:00
我觉得面向对象对面想过程的区别在于能否允许开发者自定义数据类型,以及用户自定义的数据类型所产生的实例,这些实例就是对象,为什么要自定义数据类型呢?因为开发工具给开发者提供的数据类型太有限了,要模拟大千世界不方便,因此需要自定义数据类型,float是对浮点数的模拟,CString是对字符串的模拟,但你要模拟一条狗怎么模拟你,你就可以定义一个类,在这个类里可以添加腿,鼻子,头什么的,当你要模拟一条狗时,你就可以用这个类去产生一个对象,然后给腿,鼻子,头等各个变量输入数据,你就可以模拟那个狗了,当你要模拟一条比如德国黑背,你就发现你的类还是不方便,你就可以在狗类的基础上派生出一个派生类叫德国黑背狗类,然后添加变量黑背,竖耳朵等参数,然后用这个类产生的实例去模拟德国黑背就可以了,以后所有的此类狗都可以你的自定义类型-类去实现,不用一个一个去模拟了.不对之处,欢迎指正.
8 楼
echo000000 [专家分:0] 发布于 2009-10-15 22:48:00
我的理解是比较高级的记录
9 楼
nieyin [专家分:0] 发布于 2009-10-16 15:11:00
高手叹息这样的问题。。。。。。。
10 楼
nieyin [专家分:0] 发布于 2009-10-16 15:14:00
不是吧,在C里面也可以自定义数据类型的》》
我来回复