第11章C++的面向对象基础知识 第11章C+的面向对象基础知识 111面向对象的程序设计概述 11,2C++对C的扩充 113C++程序结构 11.4面向对象程序设计的特征 11.5小结 Ba
第11章 C++的面向对象基础知识 第11章 C++的面向对象基础知识 11.1 面向对象的程序设计概述 11.2 C++对C的扩充 11.3 C++程序结构 11.4 面向对象程序设计的特征 11.5 小结
第11章C++的面向对象基础知识 11传统的程序设计方法 程序设计方法的进步 在20世纪60年代,软件曾出现过严重危机,由软件错误而 引起的信息丢失、系统报废事件屡有发生。为此1968年,荷兰 学者提出了程序设计中常用的GOTO语句的三大危害:破坏了 程序的静动一致性;程序不易测试;限制代码化。此举引起了 软件界长达数年的论战,并由此产生了结构化程设计方法,同 时诞生了基于这一设计方法的程序设计 Pascal pascal经推出, 它的简洁明了以及丰富的数据结构和控制结构,为程序员提供 了极大的方便性与灵活性,同时它特别适合计算机系统,因此 大受欢迎。结构化程序设计思想在整个20世纪70的软件开发中 占绝对统治地位 Ba
第11章 C++的面向对象基础知识 11.1 传统的程序设计方法 一.程序设计方法的进步 在20世纪60年代,软件曾出现过严重危机,由软件错误而 引起的信息丢失、系统报废事件屡有发生。为此1968年,荷兰 学者提出了程序设计中常用的GOTO语句的三大危害:破坏了 程序的静动一致性;程序不易测试;限制代码化。此举引起了 软件界长达数年的论战,并由此产生了结构化程设计方法,同 时诞生了基于这一设计方法的程序设计Pascal.Pascal一经推出, 它的简洁明了以及丰富的数据结构和控制结构,为程序员提供 了极大的方便性与灵活性,同时它特别适合计算机系统,因此 大受欢迎。结构化程序设计思想在整个20世纪70的软件开发中 占绝对统治地位
第11章C++的面向对象基础知识 什么是结构化程序设计( Structure Programming 结构化程序设计是上个世纪60年代诞生的,在70年代到 80年代已遍及全球,结构化程序设计的设计思路是:自 顶向下、逐步求精;其程序结构是按功能划分若干个基 本模块,这些模块形成一个树状结构;各模块之间的关 系尽可能简单,在功能上相对独立;每一模块内部均是 由顺序、选择和循环三种基本结构组成;结构化程序设 计方法的四条原则是:1.自顶向下;2.逐步求精;3. 模块化;4.限制使用goto语句。 Ba
第11章 C++的面向对象基础知识 二.什么是结构化程序设计(Structure Programming) 结构化程序设计是上个世纪60年代诞生的,在70年代到 80年代已遍及全球,结构化程序设计的设计思路是:自 顶向下、逐步求精;其程序结构是按功能划分若干个基 本模块,这些模块形成一个树状结构;各模块之间的关 系尽可能简单,在功能上相对独立;每一模块内部均是 由顺序、选择和循环三种基本结构组成;结构化程序设 计方法的四条原则是:1. 自顶向下;2. 逐步求精;3. 模块化; 4 . 限 制 使 用 g o t o 语 句
第11章C++的面向对象基础知识 当数据和过程相互独立时,总存在着用错误的数据 调用正确的程序模块或用正确的数据调用了错误的 程序模块的可能性。因此,要使数据与程序始终保 持相容,已经成为程序员的一个沉重负担。上述这 些问题,结构化程序设计方法本身是解决不了的, 到了70年代末期,结构化程序设计语言和结构化分 析与设计已无法满足用户需求的变化,于是面向对 象技术开始浮出水面 Ba
第11章 C++的面向对象基础知识 当数据和过程相互独立时,总存在着用错误的数据 调用正确的程序模块或用正确的数据调用了错误的 程序模块的可能性。因此,要使数据与程序始终保 持相容,已经成为程序员的一个沉重负担。上述这 些问题,结构化程序设计方法本身是解决不了的, 到了70年代末期,结构化程序设计语言和结构化分 析与设计已无法满足用户需求的变化,于是面向对 象技术开始浮出水面
第11章C++的面向对象基础知识 1112面向对象的程序设计方法 面向对象的由来和发展 面向对象方法起源于面向对象语言,编程语言得到 应用和发展的同时,面向对象的方法得到了发展。和任 何事物一样,面向对象语言也经历了它的发生、发展阶 段,走向成熟。 1.在60年代初期,Ago语言使封装思想诞生。 2在60年代后期, Simula引入对象和消息机制,对 象和对象之间可以通过发送消息来进行相互通信,这 就是导致了数据封装与通信思想的产生 Ba
第11章 C++的面向对象基础知识 11.1.2面向对象的程序设计方法 一.面向对象的由来和发展 面向对象方法起源于面向对象语言,编程语言得到 应用和发展的同时,面向对象的方法得到了发展 。和任 何事物一样,面向对象语言也经历了它的发生、发展阶 段,走向成熟。 1.在60年代初期,Algo语言使封装思想诞生 。 2.在60年代后期,Simula引入对象和消息机制,对 象和对象之间可以通过发送消息来进行相互通信,这 就是导致了数据封装与通信思想的产生
第11章C++的面向对象基础知识 3到了70年代,都许多语言如CLU、Ads、 Modula-2等 都开始支持数据与封装,这导致了抽象数据类型发展。 4.1980年,出现 Smalltalk-80商品化的面向对象语言 它是纯粹的面向对象编程语言 580年代中期到90年代,出现了大批面向对象语言, 面向对象语言趋于成熟,从此面向对象方法走向实用。 面向对象的基本思想 其基本思想是使用对象、类、继承、封装、消息等基本概念 来进行程序设计。从现实世界中客观存在的事物(即对象)出发 来构造软件系统,并且在系统构造中尽可能运用人类的自然思维 方式。 Ba
第11章 C++的面向对象基础知识 3.到了70年代,都许多语言如CLU、Ads、Modula-2等 都开始支持数据与封装,这导致了抽象数据类型发展。 4.1980年,出现Smalltalk-80商品化的面向对象语言, 它是纯粹的面向对象编程语言。 5.80年代中期到90年代,出现了大批面向对象语言, 面向对象语言趋于成熟,从此面向对象方法走向实用。 二.面向对象的基本思想 其基本思想是使用对象、类、继承、封装、消息等基本概念 来进行程序设计。从现实世界中客观存在的事物(即对象)出发 来构造软件系统,并且在系统构造中尽可能运用人类的自然思维 方式
第11章C++的面向对象基础知识 三.面向对象的基本概念 1.对象:特性+行为 第一个面向对象的程序设计语言是60年代开发的S mula- 67。其目的是为了解决模拟问题。典型的模拟问题是银行出 纳业务,包括出纳部门、顾客、业务、货币的单位等大量的 “对象”。把那些在程序执行期间除了状态之外其他方面都 样的对象归在一起,构成对象的“类”,这就是“类” 词的来源。类描述了一组有相同特性(数据元素)和相同行 为(函数)的对象。 2.继承:类型关系 特殊类的对象拥有其一般类的全部属性与服务,称作特 殊类对一般类的继承 Ba
第11章 C++的面向对象基础知识 三.面向对象的基本概念 1.对象:特性+行为 第一个面向对象的程序设计语言是60年代开发的Simula— 67。其目的是为了解决模拟问题。典型的模拟问题是银行出 纳业务,包括出纳部门、顾客、业务、货币的单位等大量的 “对象”。把那些在程序执行期间除了状态之外其他方面都 一样的对象归在一起,构成对象的“类”,这就是“类”一 词的来源。类描述了一组有相同特性(数据元素)和相同行 为(函数)的对象。 2.继承:类型关系 特殊类的对象拥有其一般类的全部属性与服务,称作特 殊类对一般类的继承
第11章C++的面向对象基础知识 个类可以是多个一般类的特殊类,它从多个一般类中 继承了属性与服务,这称为多继承。例如,客轮是轮船 和客运工具的特殊类。在java语言中,通常我们称一般 类为父类,特殊类为子类。 3.封装性 封装性就是把对象的属性和服务结合成一个独立的相 同单位,并尽可能隐蔽对象的内部细节,包含两个含义: 把对象的全部属性和全部服务结合在一起,形成一个不可 分割的独立单位(即对象)。信息隐蔽,即尽可能隐蔽对 象的内部细节,对外形成一个边界,只保留有限的对外接 口使之与外部发生联系 4.多态性 对象的多态性是指在一般类中定乂的属性或服务被特殊 类继承之后,可以具有不同的数据类型或表现出不同的 Ba
第11章 C++的面向对象基础知识 一个 类可以是多个一般类的特殊类,它从多个一般类中 继承了 属性与服务,这称为多继承。例如,客轮是轮船 和客运工 具的特殊类。在java语言中,通常我们称一般 类为父类,特 殊类为子类。 3.封装性 封装性就是把对象的属性和服务结合成一个独立的相 同单位,并尽可能隐蔽对象的内部细节,包含两个含义: 把对象的全部属性和全部服务结合在一起,形成一个不可 分割的独立单位(即对象)。信息隐蔽,即尽可能隐蔽对 象的内部细节,对外形成一个边界,只保留有限的对外接 口使之与外部发生联系。 4. 多态性 对象的多态性是指在一般类中定义的属性或服务被特殊 类继承之后,可以具有不同的数据类型或表现出不同的行 为
第11章C++的面向对象基础知识 112C++对C的扩充 1121C++语言源程序的编译 为了解C++语言源程序的编译过程首先介绍一些基本术语: 1.源程序:用源语言写的有待翻译的程序,称为“源程 序”。源程序可以是汇编语言,也可以是高级程序设计语言, 所以用它们写出的程序都是源程序。 2.目标程序:是源程序通过翻译加工以后所生成的程序 目标程序可以用机器语言表示,也可以用汇编语言或其他中间语 言表示。 3.翻译程序:是指用来把源程序翻译为目标程序的程序。 对翻译程序来说,源程序是它的输入,而目标程序则是其输出 dBac cke
第11章 C++的面向对象基础知识 11.2 C++对C的扩充 11.2.1 C++语言源程序的编译 为了解C++语言源程序的编译过程首先介绍一些基本术语: 1.源程序:用源语言写的有待翻译的程序,称为“源程 序”。 源程序可以是汇编语言,也可以是高级程序设计语言, 所以用它们写出的程序都是源程序。 2.目标程序:是源程序通过翻译加工以后所生成的程序。 目标程序可以用机器语言表示,也可以用汇编语言或其他中间语 言表示。 3.翻译程序:是指用来把源程序翻译为目标程序的程序。 对翻译程序来说,源程序是它的输入,而目标程序则是其输出
第11章C++的面向对象基础知识 1122基本数据类型 1.C++类型分类 C++的数据类型有基本数据类型和非基本数据类型。基 本数据类型是C++内部预先定义的数据类型。主要有整型 字符型、实型、布尔型这四种基本类型。非基本数据类型 包括指针、数组、结构、类等。 2整型 标准C艹+中6种整型 short、int、long、 unsigned short、 unsigned int、 unsigned long。以在十六位计算机中表示为例它 们的范围如下表112-1: dBac cke
第11章 C++的面向对象基础知识 11.2.2基本数据类型 1.C++类型分类 C++的数据类型有基本数据类型和非基本数据类型。基 本数据类型是C++内部预先定义的数据类型。主要有整型、 字符型、实型、布尔型这四种基本类型。非基本数据类型 包括指针、数组、结构、类等。 2.整型 标准C++中6种整型short、int、long、unsigned short、 unsigned int、unsigned long。以在十六位计算机中表示为例它 们的范围如下表11.2-1: