C++面向对象程序设计 面向对象编程
1.1 面向过程的编程风格与面向对象的编程风格
模块化的组织方式:将整个系统分解为若干模块,模块之间通过接口传递信息,模块划分应尽可能高内聚,低耦合。
内聚:模块内各元素彼此结合的紧密程度;耦合:不同模块间的依赖紧密程度。
问题:高耦合引起程序崩溃;低内聚使数据无法管理,程序难以理解;数据安全性问题;可维护性及可重用性差;图形界面难以实现和维护;串联改变。
面向对象程序设计是面向过程编程的一种替代技术,其中构成模块的基本单元是类而不是过程。面向对象设计中的类是对象(object)的集合体,对象是数据结构和算法的封装体,属于类的任何对象共享该类的所有属性。
面向对象程序设计的优点:实现对现实世界客体的自然描述;可控制复杂性;可增强模块性;可提高重用性;可改善可维护性。
关系是指在类与类之间、对象及其所属类之间存在的各种关系。关系有多种类型,如类与类之间的拥有has a、继承is a、实例化 belongs to数据关系;对象和类之间也存在着实例化或隶属于的关系。
1.2 类与抽象数据类型
对象是面向对象开发模式的基本成分,可用一组属性和可执行的一组操作来定义,属性一般只能通过执行对象的操作来改变,操作又称为方法、行为或服务,它描述了对象执行的功能,若通过消息传递,还可以为其他对象使用。
类是一组具有相同数据结构和操作的对象的集合,定义包括一组数据属性和在数据上的一组合法操作,可以产生对象,对象是类的实例,可使用类中的函数。
面向对象语言中的类是支持信息隐藏的模块,C++使用关键字public和private来对类的属性和操作进行存取访问控制。
面向过程编程过程作为模块的基本单元,并且数据处理在过程中进行。面向对象编程的基本单元是类,通过类这种机制可以将数据和处理这些数据的过程封装为一个有机的整体——类。
1.3 客户/服务器模式与消息传递
面向对象编程以客户/服务器模式为计算基础,该模式诠释了面向对象编程中的重点:信息隐藏。信息隐藏也可以提高服务器的健壮性。
1.4 继承与多态
使用多重继承会增加命名冲突的可能性:派生类和基类发生命名冲突或者基类和基类发生命名冲突。解决命名冲突问题的方法是使用域解析符。
在面向对象语言中,多个不同函数可以具有相同的函数签名,即多态方法。
多态方法在继承层次结构中属于类。在多态上下文中,如果子类提供了自己的多态方法定义,称为子类覆盖(override)父类具有相同签名档的方法。
多态机制可以消除显式的递归调用从而避免了面向过程方法表现出来的复杂逻辑。
1.5 接口与组件
在某些面向对象语言(如Java)中接口为关键字。而C++支持抽象基类,通过公有的、高层的方法来指定类的接口。在类之间共享接口带来极大便利,接口共享这种多态机制极其适用于组件技术。
组件对象模型COM
COM的优点:应用程序可定制;提高软件的可重用性;分布式、远程调用等应用程序开发得以简化。
分布式组件对象模型DCOM是COM组建的扩展,在COM的应用程序、组件、工具等基础上处理网络协议的低层次的细节问题,使用户不必关心网络协议细节。
1.6 面向对象开发
C++面向对象程序设计 面向对象编程相关推荐
- JAVA面向对象程序设计——面向对象
类与对象 概念:程序是为了模拟现实生活,解决现实中生活中的各种问题,现实中的每种实物都是独立的,每种独立的事物都可以用一种"类型"表示,这就是类. 类是一个概念,也可以说是模板,对 ...
- python面向对象程序设计董付国ppt_(董付国)Python 学习笔记---Python面向对象程序设计(1)...
面向对象程序设计 面向对象程序设计(Object Oriented Programming,OOP)主要针对大型软件设计而提出,使得软件设计更加灵活,能够很好地支持代码复用和设计复用,并且使得代码具有 ...
- 面向对象程序设计C++学习之路2
面向对象程序设计--C++ 编程专栏 C++风格简单题 百钱问题(1元兑换成1,2,5,分的种类) 引用的例子--排序(从小到大) 类和对象题 简单的成员函数题 对象数组题 继承与派生类题 面积题 学 ...
- C++面向对象(一):面向对象程序设计概述
C++面向对象:面向对象程序设计概述 会有点长,不过读过就全学会喽!!!!!! 会有点长,不过读过就全学会喽!!!!!! 会有点长,不过读过就全学会喽!!!!!! 1.什么是面向对象程序设计 面向对象 ...
- Python 面向对象程序设计(一)
面向对象程序设计 # 面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是一种程序设计范型,同时也是一种程序开发的方法. #对象指的是类的实例.它将对象作为 ...
- python类与对象作业_荐富贵和你一起复习Python(第10篇)— 面向对象程序设计
继续复习Python,今日复习 -- 面向对象程序设计,中间会有自己的心得体会,要是有什么错误或者补充可直接评论或者私信哟. 面向对象程序设计 面向对象程序设计的思想主要针对大型软件设计提出,能够很好 ...
- c++陈维兴第三版3.35_C++面向对象程序设计教程第3版—陈维兴,林小茶课后习题答案...
C++ 面向对象程序设计教程课后题答案 1 . 1 什么就是面向对象程序设计 ? 面向对象程序设计就是一种新的程序设计范型.这种范型的主要特征就是 : 程序 = 对象 + 消息 面向对象程序的基本元素 ...
- 用面向对象程序设计制作花语(flowerlanguage)
目录 一.什么是面向对象程序设计 二.什么是类 1.什么是类的成员 (1)什么是属性 (2)什么是方法 三.什么是对象 四.讲解代码 1.定义类 2.调整对象的属性 3.定义函数 4.将self.wi ...
- Java面向对象设计(面向对象)
Java面向对象程序设计 面向对象 学习JAVA必须掌握类和对象,这样可以深层次理解Java这种面向对象的程序开发理念,从而更好更快地掌握Java这门语言的编程思想和方法 类 类保存着方法和属性,那么 ...
最新文章
- div高度、宽度100% div width、height 100%
- boost::mp11::mp_set_difference相关用法的测试程序
- C++-Loki Allocator
- IOS控件的应用UIPageController与UIScrollView
- 中关村win11 32位官方原版iso文件v2021.08
- 阿里云安装git_Jenkins准备篇04阿里云Centos7服务器安装git
- java statement 动态参数_java_web学习(九) PreparedStatement动态参数的引入
- Python实现最简单的神经网络(数字识别)
- java azure blobs sas_仅使用SAS令牌连接到Azure存储帐户?
- 线性代数学习笔记——矩阵主要公式
- 如何成为一名Go开发人员:总共分六步
- 刚体运动学公式_1.力的观点 ⑴.匀变速直线运动中常见的公式: 牛顿第二定律: 运动学公式:.... ⑵.圆周运动的主要公式:...
- 一招解决 Mac JD-JUI 打不开问题
- 超全面UI基础设计规范
- python爬duitang的摄影类图片
- 2022好用的便签记事日程提醒软件有哪些
- 金融大数据分析平台Palantir Metropolis介绍
- tftpd32服务器软件在Windows与linux 下的文件传输
- VC 获取任务栏窗口的句柄
- 【Spring boot 常见问题】