一. 程序设计范型

  面向对象程序设计(object-oriented programming,OOP)是一种新的程序设计的范型。程序设计范型是设计程序的规范、模型和风格,它是一类程序设计语言的基础。
面向对象设计范型的主要特征是:

 程序=对象+消息

  面向对象程序的基本元素是对象。面向对象程序的主要结构特点是:一、程序一般由类的定义和类的使用两部分组成;二、程序中的一切操作都是向对象发送消息来实现的,对象收到消息后,启动有关方法完成相应的操作。
  需要说明的是,某一种程序设计语言不一定与一种程序设计范型相对应。实际上具有两种或多种范型特征的程序设计语言,即混合型语言。例如,C++就不是纯粹的面向对象程序设计范型的语言,而是具有面向过程程序设计范型和面向对象设计范型的混合性设计语言。

二. 面向对象程序设计的基本概念

1. 对象
 现实中的对象,具有以下特征:

  1. 每个对象必须有一个名字以区别其他对象;
  2. 用属性来描述对象的耨些特征;
  3. 有一组操作,每一组操作决定对象的一种行为;
  4. 对象的行为可以分为两类:一类作用于自身的行为,另一类作用与其他对象的行为。

2. 类
  类是一组具有相同属性和行为的对象的抽象。类与对象之间的关系是抽象与具体的关系。类是对多个对象进行综合抽象的结果。

3. 消息与方法
  面向对象程序设计中,对象之间也需要联系,称为对象的交互。面向对象程序设计技术必须提供一种机制允许一个对象与另一个对象的交互。这种机制称为消息传递。
  对象所能实现的行为(操作),在程序设计方法中称为方法。它们是通过调用相应的函数来实现的,在C++语言中方法是通过成员函数来实现的。方法包括界面和方法体两部分。方法的界面给出了方法名和调用协议(相对于C++中的成员函数的函数名和参数表);方法体则是实现某种操作的一系列计算步骤,也就是一段程序(相对于C++中成员函数的函数体)。

三. 面向对象程序设计的基本特征

1. 抽象
  抽象是通过特定的实例(对象)抽取共同性质后形成概念的过程。面向对象程序设计中的抽象包括两个方面:数据抽象和代码抽象(或称为行为抽象)。前者描述某类对象的属性或状态,也就是此类对象区别于彼类对象的特征物理量:后者描述了某类对象的共同行为特征或具有的共同功能。对于一组具有相同属性和行为的对象,可以抽象成一种类型,在C++中,这种类型就称为类(class),类是对象的抽象,而对象是类的实例。
  抽象在系统分析、系统设计以及程序设计的发展中一直起着重要的作用。在面向对象程序设计方法中,对一个具体问题的抽象分析的结果,是通过类来描述和实现的。

2. 封装
  在现实世界中,所谓封装就是把某个事物包围起来,使外界不知道该事物的具体内容。在面向对象程序设计中,封装是指把数据和实现操作的代码集中起来放在对象内部,并尽可能隐蔽对象的内部细节。对象好像是一个不透明的黑盒子.表示对象属性的数据和实现各个操作的代码都被封装在黑盒子里,从外面是看不见的,更不能从外面直接访问或修改这些数据及代码。使用一个对象的时候,只需知道它向外界提供的接口而无需知道它的数据结构细节和实现操作的算法。
  C++对象中的函数名就是对象的对外接口,外界可以通过函数名来调用这些函数来实现某些行为(功能)。封装的好处是可以将对象的使用者与设计者分开,大大降低了人们操作对象的复杂度。使用者不必知道对象行为实现的细节,只需要使用设计者提供的接口的功能即可自由地操作对象。封装的结果实际上隐藏了复杂性,并提供了代码重用性,从而减轻了开发软件系统的难度。
  封装是面向对象程序设计方法的一个重要特性,封装具有两方面的含义:一是将有的数据和操作代码封装在一个对象中,各个对象相对独立、互不干扰;二是将对象中某此据与操作代码对外隐蔽,即隐蔽其内部细节,只留下少量接口,以便与外界联系,接收外界消息,这种对外界隐蔽的做法称为信息隐蔽。信息隐蔽有利于数据安全,防止无关人员访和修改数据。

3. 继承
  继承是面向对象软件技术当中的一个概念。如果一个类别A“继承自”另一个类别B,就把这个A称为“B的子类别”,而把B称为“A的父类别”也可以称“B是A的超类”。在令子类别继承父类别的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类别的原有属性和方法,使其获得与父类别不同的功能。另外,为子类别追加新的属性和方法也是常见的做法。 从继承源上分,继承又分为单继承和多继承。

4. 多态
  面向对象系统的多态性是指不同的对象收到相同的消息时执行不同的操作。
  C++语言支持两种多态性即编译时的多 态性和运行时的多态性。 编译时的多态性是通过函数重载(包括运算符重载)来实现的,运行时的多态性是通过虚函数来实现的。
  多态性增强了软件的灵活性和重用性,为软件的开发与维护提供了极大的便利。尤其是采用了虚函数和动态联编机制后,允许用户以更为明确、易懂的方式建立通用的软件。

面向对象程序设计概念相关推荐

  1. C++面向对象程序设计概念全总结(六)--最全的概念总结

    1.对象和类概念 对象:任何一个对象都应该具备两个要素:属性.行为. 在C++中每个对象都有数据(体现了'属性')和函数(用来对数据进行操作,以实现某些功能)两部分组成. 类:具有共性的实体的抽象. ...

  2. 初学者C++面向对象程序设计概念全总结最全的概念总结

    1.对象和类概念 对象:任何一个对象都应该具备两个要素:属性.行为. 在C++中每个对象都有数据(体现了'属性')和函数(用来对数据进行操作,以实现某些功能)两部分组成. 类:具有共性的实体的抽象. ...

  3. 面向对象程序设计基本概念

    面向对象程序设计基本概念 重点: C++中的 多态 和 指针间接赋值 1): 多态的三个条件         a: 子类继承父类         b: 虚函数(虚表及虚表指针)         c: ...

  4. 面向对象程序设计中“超类”和“子类”概念的来历

    众所周知,在面向对象程序设计中,子类从超类中继承数据成员和成员方法,然后在此基础上再根据实际需要进行扩展并增加属于子类的数据成员和成员方法.也就是说,子类的对象比超类的对象具有更加丰富的属性,或者具有 ...

  5. VB.NET面向对象程序设计的基本概念

    一.类和对象 面向对象程序设计(Object-Oriented programming)OOP是一种系统化的程序设计方法,强调直接以问题域(即现在世界)中的事物为中心来考虑问题,并按照这些事物的本质特 ...

  6. 面向对象程序设计的基本概念

    1.基本术语 (1) 对象和对象类 对象是代码和数据的组合,可以作为一个单位来处理.对象可以是应用程序的一部分,比如可以是控件或窗体.整个应用程序也是一个对象. VB中的每个对象都是用类定义的.用饼干 ...

  7. 面向对象编程概念_如何向6岁的孩子解释面向对象的编程概念

    面向对象编程概念 by Alexander Petkov 通过亚历山大·佩特科夫(Alexander Petkov) Have you noticed how the same cliche ques ...

  8. 2017《面向对象程序设计》寒假作业一

    1.你有什么技能比大多人(超过70%以上)更好? 我看电影比一般人多一点点:我听英文歌比一般人多一点点:我有一把尤克里里和一个滑板.我有很多爱好,但都没能发展成我的特长,它们给我的生活增添了情趣,又不 ...

  9. JavaScript中的面向对象程序设计

    本文内容目录顺序: 1.Object概念讲述: 2.面向对象程序设计特点: 3.JavaScript中类和实例对象的创建: 4.原型概念: 5.原型API: 6.原型对象的具体使用:7.深入理解使用原 ...

  10. 十三、面向对象程序设计

    1.面向对象基本概念 面向对象的意义在于: 将日常生活中习惯的思维方式引入程序设计中 将需求中的概念直观的映射到解决方案中 以模块为中心构建可复用的软件系统 提高软件产品的可维护性和可扩展性 类和对象 ...

最新文章

  1. SQL基本点—— 思维导图
  2. 28岁以后,我不抱大腿,我就是大腿
  3. Kafka集群安装--测试--关闭
  4. CF1062E Company
  5. (82)FPGA仿真停止激励(stop)
  6. 护士计算机怎么报名,护士自考本科怎样报名
  7. 【OpenGL 实验二】Liang-Barsky 裁剪算法
  8. 顶尖互联网公司 类名定义/数据库字段 - 英文名词解释
  9. matlab仿真step模块讲解,Simulink仿真教程(最好)
  10. 网站数据常见的获取途径有什么
  11. 将电脑输入法关闭只留我们经常用的输入法
  12. 2021会宁三中高考成绩查询,2019中考分数线
  13. 从ADK的WinPE自己手动构建自己的PE
  14. 经典RPG游戏的七个次重要要素
  15. 不讲武德!为击破苹果的“隐私高墙”,谷歌、Facebook 竟然“二打一”?
  16. 萤石摄像头android开发,Android 伤敌一千自损八百之萤石摄像头集成(三)
  17. MATLAB处理图像时出错:错误使用 rgb2gray>parse_inputs (line 80)MAP 必须为 m x 3 的数组。
  18. C语言 —— for循环(一)
  19. 2022年清华大学计算机考研复试时间及要求分别是什么
  20. JavaScript 原型和原型链及 canvas 验证码实践

热门文章

  1. html和css基础整理
  2. Redfish接口测试
  3. java从入门到放弃(一)
  4. Java打印杨辉三角形
  5. 常用Python模块下载网站
  6. C语言大作业 商品库存管理系统
  7. 影视后期PR效果窗口
  8. 将Excel中的信息生成奖状
  9. java 如何执行dig 命令_如何在cmd下直接执行Dig命令
  10. 三菱伺服电机选型技巧