网上有关“面向对象是什么意思”话题很是火热 ,小编也是针对面向对象是什么意思寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
面向对象是一种软件开发方法和编程范式 。
面向对象是一种程序设计思想 ,它的核心概念是“对象 ”。“对象”是指具有特定属性和行为的实体,能够接收消息 、处理消息并返回结果。在面向对象的编程语言中,所有的程序都是由多个对象组成的 。
面向对象的编程语言具有三个基本概念:封装、继承和多态。其中封装是将数据和操作封装在一个对象中 ,避免了外部对内部数据的直接访问,提高了安全性和可维护性。
继承是一种可以复用已有代码的方式,子类可以继承父类的数据和操作,并且可以根据需要进行修改或者扩展 。多态是指同一个消息可以被不同类型的对象接收并产生不同的行为 ,实现了代码的灵活性和扩展性。
面向对象的发展
早期的计算机编程是基于面向过程的方法,例如实现算术运算1+1+2=4,通过设计一个算法就可以解决当时的问题。随着计算机技术的不断提高 ,计算机被用于解决越来越复杂的问题。
一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象 ,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模 。
通过面向对象的方法,更利于用人理解的方式对复杂系统进行分析 、设计与编程。同时 ,面向对象能有效提高编程的效率,通过封装技术,消息机制可以像搭积木一样快速开发出一个全新的系统。
面向对象是指一种程序设计范型 ,同时也是一种程序开发的方法 。对象是类的具体化实现。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。
C++面向对象和面向过程的程序设计有何区别?
面向对象技术(OOT)是一种软件开发和程序设计技术 。所开发的程序是面向对象程序,直接描述客观世界的对象及其相互关系。例如 ,银行经理、秘书 、职员、顾客、帐本、打印机,直接作为对象出现的程序中。他们相互通信,完成诸如存取款 、会计结算、打印报表等业务 。以往的编程技术只用数据结构和算法来模拟要完成的业务 ,虽然可以得到所需计算,但经不起修改。如果增加某项业务,如代营股票 ,则程序几乎要重编。而现在只要把增加的业务加到顾客、帐本 、职员、打印机这些对象上就可以了 。
要我说,无论是面向过程的语言也好,面向对象的语言也罢 ,我首先要给他讲的都是类和对象!“这个世界是由什么组成的?”这个问题如果让不同的人来回答会得到不同的答案。如果是一个化学家,他也许会告诉你“还用问嘛?这个世界是由分子、原子 、离子等等的化学物质组成的 ”。如果是一个画家呢?他也许会告诉你,“这个世界是由不同的颜色所组成的”。……呵呵 ,众说纷纭吧!但如果让一个分类学家来考虑问题就有趣的多了,他会告诉你“这个世界是由不同类型的物与事所构成的”好!作为面向对象的程序员来说,我们要站在分类学家的角度去考虑问题!是的,这个世界是由动物、植物等组成的 。动物又分为单细胞动物、多细胞动物 、哺乳动物等等 ,哺乳动物又分为人、大象、老虎……就这样的分下去了!
现在,站在抽象的角度,我们给“类 ”下个定义吧!我的意思是 ,站在抽象的角度,你回答我“什么是人类?”首先让我们来看看人类所具有的一些特征,这个特征包括属性(一些参数 ,数值)以及方法(一些行为,他能干什么!)。每个人都有身高 、体重、年龄、血型等等一些属性。人会劳动、人都会直立行走 、人都会用自己的头脑去创造工具等等这些方法!人之所以能区别于其它类型的动物,是因为每个人都具有人这个群体的属性与方法 。“人类”只是一个抽象的概念 ,它仅仅是一个概念,它是不存在的实体!但是所有具备“人类”这个群体的属性与方法的对象都叫人!这个对象“人 ”是实际存在的实体!每个人都是人这个群体的一个对象。老虎为什么不是人?因为它不具备人这个群体的属性与方法,老虎不会直立行走 ,不会使用工具等等!所以说老虎不是人!
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
解析:
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤 ,而是为了描叙某个事物在整个解决问题的步骤中的行为 。
例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走 ,3 、绘制画面,4、判断输赢,5、轮到白子 ,6 、绘制画面,7、判断输赢,8、返回步骤2 ,9 、输出最后结果。把上面每个步骤用分别的函数来实现,问题就解决了。
而面向对象的设计则是从另外的思路来解决问题 。整个五子棋可以分为 1、黑白双方,这两方的行为是一模一样的 ,2、棋盘系统,负责绘制画面,3 、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入 ,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的i变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。
可以明显地看出 ,面向对象是以功能来划分问题,而不是步骤 。同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中 ,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。而面向对象的设计中,绘图只可能在棋盘对象中出现 ,从而保证了绘图的统一。
功能上的统一保证了面向对象设计的可扩展性。比如我要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤都要改动 ,甚至步骤之间的循序都要进行大规模调整 。如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了 ,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的。
再比如我要把这个五子棋游戏改为围棋游戏 ,如果你是面向过程设计,那么五子棋的规则就分布在了你的程序的每一个角落,要改动还不如重写。但是如果你当初就是面向对象的设计 ,那么你只用改动规则对象就可以了,五子棋和围棋的区别不就是规则吗?(当然棋盘大小好像也不一样,但是你会觉得这是一个难题吗?直接在棋盘对象中进行一番小改动就可以了 。)而下棋的大致步骤从面向对象的角度来看没有任何变化。
当然 ,要达到改动只是局部的需要设计的人有足够的经验,使用对象不能保证你的程序就是面向对象,初学者或者很蹩脚的程序员很可能以面向对象之虚而行面向过程之实 ,这样设计出来的所谓面向对象的程序很难有良好的可移植性和可扩展性。
关于“面向对象是什么意思”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
评论列表(3条)
我是乐信号的签约作者“瑾萱心”
本文概览:网上有关“面向对象是什么意思”话题很是火热,小编也是针对面向对象是什么意思寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。面向对象是一种...
文章不错《面向对象是什么意思》内容很有帮助