面相对象编程_面向对象的语言主要有哪些?9?3

面向对象的语言主要有哪些
百科-PHP
百科-Smalltalk
百科-Objective-C
百科-C
【面相对象编程_面向对象的语言主要有哪些?9?3】百科-JAVA

面向对象编程是什么意思
c
概念:面向对象的程序设计(Object-Oriented Programming,简记为OOP)立意于创建软件重用代码,具好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者 。它通过给程序中加入扩展语句,把函数“封装”进编程所必需的“对象”中 。面向对象的编程语言使得复杂的工作条理清晰、编写容易 。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言 。对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟 。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多 。有人可能会说PHP不是一个真正的面向对象编程的语言,PHP 是一个混合型 语言,你可以使用面向对象编程,也可以使用传统的过程化编程 。然而,对于大型项目的开发,你可能想需要在PHP中使用纯的面向对象编程去声明类,而且在你的项目开发只用对象和类 。随着项目越来越大,使用面向对象编程可能会有帮助,面向对象编程代码很容易维护,容易理解和重复使用,这些就是软件工程的基础 。在基于Web的项目中应用这些概念就成为将来网站成功的关键 。
对象(Object)是问题域或实现域中某些事物的一个抽象,它反映此事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体 。关于对象要从两方面理解:一方面指系统所要处理的现实世界中的对象;另一方面对象是计算机不直接处理的对象,而是处理相应的计算机表示,这种计算机表示也称为对象 。简单的来说,一个人就是一个对象,一个尺子也可以说是个对象 。当这些对象可以用数据直接表示时,我们就称他为属性,尺子的度量单位可以是厘米,公尺或英尺,这个度量单位就是尺子的属性 。
编程里面我对面相过程跟面相对象的概念我的认为 。
理解的太片面了 。而且了 。
面向对象和面向过程指两种不同的编程思维方式 。
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了 。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为 。
例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果 。把上面每个步骤用分别的函数来实现,问题就解决了 。
而面向对象的设计则是从另外的思路来解决问题 。整个五子棋可以分为 1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等 。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的i变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定 。
可以明显地看出,面向对象是以功能来划分问题,而不是步骤 。同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化 。而面向对象的设计中,绘图只可能在棋盘对象中出现,从而保证了绘图的统一 。
功能上的统一保证了面向对象设计的可扩展性 。比如我要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的循序都要进行大规模调整 。如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的 。
再比如我要把这个五子棋游戏改为围棋游戏,如果你是面向过程设计,那么五子棋的规则就分布在了你的程序的每一个角落,要改动还不如重写 。但是如果你当初就是面向对象的设计,那么你只用改动规则对象就可以了,五子棋和围棋的区别不就是规则吗?(当然棋盘大小好像也不一样,但是你会觉得这是一个难题吗?直接在棋盘对象中进行一番小改动就可以了 。)而下棋的大致步骤从面向对象的角度来看没有任何变化 。
面向过程-->面向对象 这是一种思维的进步