真正的面向对象编程思想是怎样的?

真正的面向对象编程思想是怎样的?
真正的面向对象编程思想就是忘掉一切关于计算机的东西,从问题领域考虑问题, :-)
从问题想?
个人理解:
一、将分析过程为抽象的过程:简言之:分红多个小问题(组成部分),直到没法再细;
二、对每一个对象(小问题)进行分析,抽象,提取处共同的内容(数据成员和操做方法),
三、有类似的对象的,构造基类;再有基类派生出各个肯定的对象(小问题);
四、解决问题的过程就是操做这些对象的过程。
个人体会:
一、从如今开始构造对象,逐渐总结、体会;不要等到看到教材的最后一页才动手。
就是忘掉语言自己!
只有逻辑!
 回复人: qiuanhong(练从难处练,用从易处用)
个人理解:
  与实际生活联系起来。
将要处理的‘问题’抽象成一个或多个‘事件’
 找一个地方使用个人智慧
你不说我倒还明白,你越说我越糊涂
就是学习数据结构时,通常教材用的“类天然语言”。
就是从实际的对象出发,而不是用计算机语言考虑问题
好比说一头驴:从实际出发,这头驴有各类属性(高矮、胖瘦、驴种(白的、黄的、花的)),还有各类功能(能够骑、能够卖、能够吃);
而在计算机专家的角度,他会想(这头驴能够用什么数据结构
实现??要多大空间??说不定还会写出一个 骑()函数。。。。)
面向对象的技术的出现就是由于软件的规模和复杂度不断扩大,致使
了软件开发的危机,人们终于认识到人脑的分析和理解能力是有限度的。
面向对象的思想的出现就是软件开发界的一次“反朴归真”,犹如金庸小说
中张三丰教无忌太极拳同样,“忘掉一切,你就领悟太极的真谛了”,哈哈,
说得有点玄。
其实面向对象技术就是要软件开发者从技术层面向管理层面倾斜,以宏观的眼光
看待系统。
要以面向对象的方法进行系统的分析,愚觉得:
1。了解系统的功能。列举出它的对外接口,即对于使用者来讲它有什么功能。把这整个系统做为一个对象。
2。环境。系统不是运行在真空中的,操做系统等外部环境均可能会影响它。因此把环境也做为一个大的对象。
3。内部。在系统的内部,通常都比较复杂,通常的作法是规定一个粒度,枚举出该粒度上全部的物体。好比说人体,若是在器官的粒度上,就有心,肝,肺。而小于该粒度的物体(或称对象),好比血细胞,就忽略,做为其它物体(或称子系统的内部对象)。
4。子系统。不断缩小粒度,沿用步骤1~3,直到不能再抽象为止。
5。无形的物体。一个完整的互连的系统须要许多无形的物体,好比消息等了,通常这样的对象比较难发现。当你发现各个子系统没法正确合做或理顺关系时,试着加入一些辅助对象。
一切都是为了让人明白,有能让机器理解的思想
我想分析和抽象能力的高低是个关键,首先要从问题域分析和抽象出准确的对象模型,再根据这些模型进行处理,固然在过程种少不了楼上前辈们说的一些思想和细节,可是别忘了,咱们的目的是解决问题,不要为了面向对象而面向对象!
我想分析和抽象的能力对这个问题是个关键。首先要在问题域仔细分析、抽象获得相关的对象模型,而后才是相应的设计。但是面向对象只是咱们解决问题一种思想,切不可忘了问题自己,弄成为了面向对象而面向对象了!固然过程种少不了楼上一些前辈说的思想和细节了。
一种为了解决问题而产生的编程模式,你彻底能够不用它,并且有可能作的更好。
但就如今的形式看,仍是掌握的好,就我看面向对象就是:把实体转化成对象。
耕具我多年的实践:面向对象包括两个思想:
从大往小想,从小往大作
从难往易想,从易往难作
赞成一下观点-----能深刻浅出,真高手也!
真正的面向对象编程思想就是忘掉一切关于计算机的东西,从问题领域考虑问题, :-)
把问题从大到小都抽象成对象(指针只是对象的使用形式),在设计和编写程序的时候把你设计的对象合理的编排组合就是面向对象编程了。
面向对象,就是面对现实;
现实中的一切都是对象,他们有分类,就产生了“类”;
他们有不一样,类和类之间的不一样,使用类来区分;
同一个类中不一样的对象的区别,使用成员区分。
因此,面向对象的内部逻辑是分类。
真正的面象对象思想也不实用,举一个例子:
在一个文本编辑器中,若是彻底按照面向对象的思想来设计的话,每一个字符都将是一个对象,这样的开销太大,以至于不能造成程序。(因此才有设计模式中有关于此的讨论,注意:不是一种模式可以解决的)
最合适的仍是一个结合吧,就象生活中的各类事情同样,其实程序原本就是为生活服务的呀!
一本C++编程思想能够帮助你全部的难题
P.S.《深刻浅出MFC》离真正的面向对象还很遥远……
侯先生应该是科普领域的名人,不该该是程序员的偶像!
还有,面象对象也不是惟一,如今的通用编程技术就是对面向对象技术的一个很好的补充,仍是那句话:一个综合各类因素的结合点才是咱们的目标!
C++编程思想那本书其实也有它的局限性,若是看过它以后就再也不看其它的东西了,思想就会囿于其说而不能自拔,没有一本书可以“帮助你全部的难题”,相信您已经超越这一阶段可是您想过没有,您的这句话会对初学者形成一些不正确的印象。从某种角度来讲您的话是正确的,可是它有可能会误导啊!
这个问题问的好,像我这样的低手真的该总结总结到底什么样的思想是面象对象的思想了,看看你们回答的都各有各的道理,真是感受好啊! 总之这个问题问的好,你们能够一学习和复习一下!好!
就算你水平再高,你也以为本身写的代码还不够面向对象!可是在水平比你低的人看来你的代码就很是面向对象了,因此没有绝对的面向对象,只有相对的,螺旋上升的!——愚见
不能全面向对象,在设计系统时不能一味追求结构
面向对象是一种思惟方式,使用计算机语言描述现实世界的一种方式,以你所感兴趣的实体为对象,经过必定的数据结构和类型来描述该实体,这种数据在C++中就是类class。你能够将你所感兴趣的现实中的实体都建一个类,这样,你算感兴趣的全部实体都有一个类与其相对应。
不使用面向对象的方式,咱们也能够解决问题,如dos时代,使用面向对象的方式,咱们能够更好的解决问题。Windows就比较精彩。
个人见解是:
面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等
原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,因而仁者见仁、智者见智,这样在必定程度上形成了理论的一种混乱局面,不利于科学的发展。因而近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就称之为“类”。这种集合上定义了操做的东东利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性有可事半功倍。
面向对象的编程思想就要想近世代数的分析思想,首先要肯定“论域”,即工程所涉及到的全部的“对象”,而后要分类处理,把隶属同一类别的对象集合在一块儿(作成一个集合),定义他们之间的运算性质及能够进行的操做,这样就构建了一个类,固然之后用到这个类的对象时都要经过已经定义了的操做来完成各项功能,这就是常要求的类的“类的成员变量要经过共有函数来操做”。
好了,就说这些吧,有些专业,不知你明白了吗?
通用编程是“横向”的,面向对象是“纵向”的,二者要结合
如今谁敢说本身不使用模板?(固然使用模板不能说就是通用编程,可是模板用多了,就会向通用编程的方向发展了)
不说STL,如今连VC.net里的CString也是模板了,呵呵,发展的大方向所致
操做系统就是一个很好的例子!
“请问怎样才能算是真正的面向对象编程思想? ”我想不该该是编程思想,应该是面向对象的分析方法才对!
   个人大白话理解是:把你要解决问题中涉及的东西一个一个分析清楚,找出彼此之间的差别和共同点,相互之间的联系,对于共性的呢,就定义成父类,在父类的基础上在进行分析,直到描述了每一个东西。
学学达尔文的进化论吧
hehe,或者看看初中的生物书也行,
对继承,多态什么的就容易理解
固然实际工程中的类、对象比花鸟虫鱼要抽象一点点
如此而已
见识浅陋,贻笑大方了
赞成只关注逻辑的观点.
应该不多考虑语言或者开发工具,
面向对象就是开发对象,简单地说,一个程序模块不须要原程序员的解释,
另外一个程序员就能够进行2次开发,这就是对象封装成功了。
至于如何封装是技术问题,
怎么划分模块界线是工程问题,
不讨论了
微软的方法是使用各类平台,将各类语言程序融合起来,使用相同的控件,
这就是将对象应用到程序当中去了。
我赞成checkitout(不累)说法,语言太多了。就像盖房子,有了好的基础,上面才可能漂亮。
就是你编的程序能放在手里也能放在篮子里,落到地上又不会碎,别人捡去也能吃。ok!!!!!!!!!!!!!!!!!
先理解什么是对象?
而后根据对象的特色编程
一个主要的关键的重要的特征就是继承。像封装多态抽象模块化这些特征面向过程也有,质的区别就在于OO提出了继承。因此说有对象而没继承的只能叫基于对象,只有有了继承才能叫面向对象。
↑以上是我在其余网站看到的一些留言,不是连续的,你看时可能会很乱,但也先看看别人在说什么吧
php

↓下面咱们也来发表一下本身的意见如何?程序员

[em07]
[url]http://ria999.com[/url]

坚持4 离线
级别: 贵宾

UID: 62700
精华: 0
发帖:
3103
铜币:
46093 枚
威望:
0 点
E积分:
0 点
技术积分:
0 分
在线时间: 0(时)
注册时间:
2006-12-23
最后登陆: 2010-06-22
沙发  发表于: 2007-01-12   

上面未完,下面继续↓数据库

我以为是否是用面向对象的思想来编程
什么是面向对象的思想?
我认为面向对象的思想的重点是发现对象和寻找对象之间的关系
对这方面我仍是初学阶段
有一本书上解释得比较清楚
<<uml与模式应用:面向对象分析与设计导论>>
找来看看,你可能会茅塞顿开
 回复人: tolimit(为JAVA鞠躬尽瘁,死然后已) ( ) 信誉:100  2002-05-18 20:56:42Z  得分:0 
 那顺便问问,代码重构如何作的更好呢,极限编程和面向对象的联系呢
 回复人: jakecat(『钢筋混凝土』混进银行...) ( ) 信誉:100  2002-05-18 23:28:18Z  得分:0 
 面向对象的Paradigm就是让咱们用看待天然或者现实世界的眼光来看待软件开发中的问题。
to crazy_lazy_pig :观点令我耳目一新,不错不错:),你是学数学的吗?
关于面向对象思想(不是编程思想),我想你们若是看懂了《设计模式》就会理解大部,偶正在看第二遍,第一遍没看懂,如今总算找到些感受。
努力中!
先拆后组
面对对象只是提供了一套设计软件时的方法或者说是思惟工具,什么是真正的面对对象,我认为并不重要,由于面对对象有他的好处,也有缺点。关键在于设计时的目的,怎么样的设计才是一个好的设计,软件的可扩展性,灵活性,效率,稳定性要求一个设计人员有比较广阔的思路,博采各类思想。
这么多年的开发,我发现了一个很是广泛的现象,一旦用OO,就都是OO,一旦用Interface/COM,就都是Interface/COM。
我认为没有一个方法能放之四海而皆准,其实OO之因此产生,COM之因此产生,都是在大量实际设计软件过程当中,把一些好的经验总结的结果。
从语言的角度来说,JAVA就是纯粹的面向对象语言!
《设计模式》《think in C++》《深度探索 C++ 对象模型》
关于面向对象思想,个人认为是:面向对象主要是一种模块化的思想,每一个模块的设计,应该是一个独立的。在调用该模块时,就像楼上那位大虾所说(一头驴他属性有高矮、胖瘦、驴种(白的、黄的、花的))只要知道其名字,并知道其属性就能用该模块,而不用管他内部是如何构建的。就像那头驴只要知道它的外在特征(如耳朵,眼睛,腿,身形,叫声等)就能判断它是驴。而不用管他里面有几个心脏,心脏大小等。
关于这类书太多了!
面向对象 哈哈 就是把什么都看成对象!(不女友那个对象呦!)
程序 = 对象 + 对象 + .......
对象 = 属性 + 行为
总之,仍是亲手编才能体会到!
高度藕合的数据和代码封装在一块儿,本身的事本身作。——面向对象的特征之一。
看atl源代码,看懂了就知道了
1)哪一种方法能最好地解决问题就用哪一种方法,不必定非要用OO,OO也有缺点
2)不用OO Language也能使用OO思想(注:^☉^OO就是指面向对象)
很是赞同duanrain(dyl)的说法。
科学家们为何会研究出OO的思想出来,根本的出发点就是为了更好的完成咱们手头上要作的项目(这是个人理解)。但实际中,是否是用OO就必定能很好的完成项目呢?我以为不见得。对于不一样的项目它们的设计有易有难,有的很容易就能找出对象集和它们之间的关系,有的就不容易常常会有无凌两可的局面。可能用OO很难表达的一些东西,采用过程式的开发就立刻把它搞定。因此用不用面向对象的思路进行开发不是关键,关键是要采用一种本身可控的、别人能很好理解的、系统性能稳定的可扩展的方式去开发。这样作才能稳中求胜。
我有这样的一个经历,我刚对OO编程开始有点领悟时就“大试小牛刀”在一个项目里定义了一个逻辑臃肿对象模型。虽然逻辑很符合应用上的业务逻辑,但里面存在了不少编程上的弊端。在操做上(咱们开发人员少,就我一个)和性能上(设计符合应用逻辑但与操做数据库的操做有点相违背)都不太好。
以后又另外一个项目,这我吸收了上一次的教训之后,我就没很详细的去设计对象模型,只作了一些小对象,在界面编程上实现业务逻辑。反而编码不管在修改BUG仍是在添加新功能上都明显简单快捷多了,系统在性能上都很稳定。
我以为,要用OO编程思想去设计项目是一个很大风险的举动,一个好的OO设计对于设计者各方面的素质都要求很高。设计得当就对编码工做有很大的帮助,设计不当时编码就步履维艰了。
我认为就“面向对象思想”来讲,《Object Oriented Software Construction》(Bertrand Meyer)的阐述最为经典,最为完全。
语言:Eiffel,C++ Critique;
可重用:Design By Contract;
软件工程:直接受语言自己的支持,集成开发环境将语言编译、代码优化、图形化显示、系统分析等功能作得浑然一体,真是无与伦比!
惋惜ISE公司不作操做系统,不能象微软那样依托操做系统设施设计出COM+来。
要是Eiffel的集成开发环境与Windows的系统注册表、COM+技术作得浑然一体,我必弃VC而用Visual Eiffel。
编程

 暂时转播完毕,吃完饭回来,再吃牛。88设计模式

[em01][em01]