第13章C到C+ 第13章C到C++ 13.1面向对象技术 132改进的C语言 133C++的输入与输出 134类与对象 135程序设计举例 BACK
第13章 C到C++ 第13章 C到C++ 13.1 面向对象技术 13.2 改进的C语言 13.3 C++的输入与输出 13.4 类与对象 13.5 程序设计举例
第13章C到C+ 13.1面向对象技术 1311面向对象技术的由来和发展 面向对象技术产生的背景与结构化程序设计方法 产生的背景类似,面向对象程序设计方法(OOP)是 在结构化程序设计方法的基础上发展而来的
第13章 C到C++ 13.1 面向对象技术 13.1.1 面向对象技术的由来和发展 面向对象技术产生的背景与结构化程序设计方法 产生的背景类似, 面向对象程序设计方法(OOP)是 在结构化程序设计方法的基础上发展而来的
第13章C到C+ 13.12面向对象技术的两大要素 1.对象 从概念上讲,对象代表着正在创建系统中的一个实体。 从形式上讲,对象是待处理的程序单元,是数据和方 法的封装体。在C++中是数据成员和成员函数的封装体。 方法由若干操作构成。对象实现了信息隐藏,方法的 具体实现外部是不可见的,封装的目的是阻止非法访问 对象通过消息与另一个对象传递信息。消息与方法一一对 应,在C++中,消息就是成员函数的调用
第13章 C到C++ 13.1.2 面向对象技术的两大要素 1. 对象 从概念上讲,对象代表着正在创建系统中的一个实体。 从形式上讲,对象是待处理的程序单元,是数据和方 法的封装体。在C++中是数据成员和成员函数的封装体。 方法由若干操作构成。对象实现了信息隐藏,方法的 具体实现外部是不可见的,封装的目的是阻止非法访问。 对象通过消息与另一个对象传递信息。消息与方法一一对 应,在C++中,消息就是成员函数的调用
第13章C到C+ 2.类 类是对象的抽象及描述,是创建对象的样板,它 包含着一类对象的数据描述和方法定义 一个类的所有对象都有相同的数据结构,共享相 同的方法,而各个对象有各自不同的状态,类是所有 对象的共同行为和不同状态的集合 由一个特定的类所创建的对象称为这个类的实例
第13章 C到C++ 2. 类 类是对象的抽象及描述, 是创建对象的样板,它 包含着一类对象的数据描述和方法定义。 一个类的所有对象都有相同的数据结构,共享相 同的方法, 而各个对象有各自不同的状态,类是所有 对象的共同行为和不同状态的集合。 由一个特定的类所创建的对象称为这个类的实例
第13章C到C+ 1313面向对象技术的三大机制 1.封装 封装的对象是数据和方法,支持数据封装就是支持 数据抽象。在C++中,类是支持数据封装的工具,对象则 是数据封装的实现。没有封装,就没有面向对象技术 另外,封装还提供一种对数据访问严格控制的机制 因此,数据将被隐藏在封装体中,该封装体通过操作接 口与外界交换信息
第13章 C到C++ 13.1.3 1. 封装的对象是数据和方法,支持数据封装就是支持 数据抽象。在C++中,类是支持数据封装的工具,对象则 是数据封装的实现。没有封装,就没有面向对象技术。 另外,封装还提供一种对数据访问严格控制的机制。 因此,数据将被隐藏在封装体中,该封装体通过操作接 口与外界交换信息
第13章C到C+ 2.继承 类提供了说明一组对象结构的机制。借助于继承这一重 要机制,已存在的类具有建立子类的能力,进而建立类的层 次,扩充类的定义。 继承提供了创建新类的一种方法,一个新类可以通过对 已有类进行修改和扩充来定义。从一个类继承定义的新类, 将继承已有类的方法和属性,并且可添加不包含在父类中的 新方法和属性。新类被称为已有类的子类,又称为派生类, 已有类称为新类的父类,又称为基类 C+中允许单继承和多继承,一个类可以根据需要生成 派生类
第13章 C到C++ 2. 继承 类提供了说明一组对象结构的机制。借助于继承这一重 要机制,已存在的类具有建立子类的能力,进而建立类的层 次, 扩充类的定义。 继承提供了创建新类的一种方法,一个新类可以通过对 已有类进行修改和扩充来定义。从一个类继承定义的新类, 将继承已有类的方法和属性,并且可添加不包含在父类中的 新方法和属性。新类被称为已有类的子类,又称为派生类, 已有类称为新类的父类,又称为基类。 C++中允许单继承和多继承, 一个类可以根据需要生成 派生类
第13章C到C+ 3.多态 多态是指相同的语法结构可以代表不同类型的实体或 者对不同类型的实体进行操作,即发出同样的消息被不同 对象接收时导致完全不同的行为。 C++允许函数名和运算符重载,允许一个相同的标识符 或运算符代表多个不同实现的函数,这是编译时的多态性。 C+中可以定义虚函数,通过定义虚函数来支持动态联 编。动态联编是另一类重要的多态性,多态性形成由父类 和它们的子类组成的一个树型结构。在这个树中的每一个 子类可接收一个或多个具有相同名字的消息。当一个消息 被这个树中一个类的一个对象接收时,这个对象动态地决 定给予子类对象的消息的某种用法。这是执行时的多态性
第13章 C到C++ 3. 多态是指相同的语法结构可以代表不同类型的实体或 者对不同类型的实体进行操作,即发出同样的消息被不同 对象接收时导致完全不同的行为。 C++允许函数名和运算符重载,允许一个相同的标识符 或运算符代表多个不同实现的函数,这是编译时的多态性。 C++中可以定义虚函数,通过定义虚函数来支持动态联 编。动态联编是另一类重要的多态性,多态性形成由父类 和它们的子类组成的一个树型结构。在这个树中的每一个 子类可接收一个或多个具有相同名字的消息。当一个消息 被这个树中一个类的一个对象接收时,这个对象动态地决 定给予子类对象的消息的某种用法。 这是执行时的多态性
第13章C到C+ 13.14面向对象程序设计 面向对象的程序设计方法是目前最先进的程序设计方 法 面向对象程序设计模拟人类认识问题较高、较广层次 的过程。结构化程序设计强调功能抽象,程序的模块化, 基于功能进行模块分解;面向对象程序设计以数据抽象为 基础,综合了功能抽象和数据抽象,基于数据抽象进行模 块分解
第13章 C到C++ 13.1.4 面向对象程序设计 面向对象的程序设计方法是目前最先进的程序设计方 法。 面向对象程序设计模拟人类认识问题较高、较广层次 的过程。 结构化程序设计强调功能抽象,程序的模块化, 基于功能进行模块分解;面向对象程序设计以数据抽象为 基础,综合了功能抽象和数据抽象,基于数据抽象进行模 块分解
第13章C到C+ 132改进的C语言 132.1C++程序 1.C+程序一般结构 C++程序的简单实例 t include"iostream .h' main() doublex,y coutx>y double z: zFY cou<<"x+V="<<z<<"n";
第13章 C到C++ 13.2 改进的C语言 13.2.1 C++程序 1. C++ //C++ #include ″iostream.h″ main( ) {double x, y; cout>x>>y; double z; z=x+y; cout<<″x+y=″<<z<<″\n″ ; }
第13章C到C+ C++程序的一般结构如下: ①文件包含; ②基类定义; ③派生类定义; ④成员函数定义; ⑤非成员函数原型说明; ⑥主函数; ⑦非成员函数
第13章 C到C++ C++程序的一般结构如下: ① 文件包含; ② 基类定义; ③ 派生类定义; ④ 成员函数定义; ⑤ 非成员函数原型说明; ⑥ 主函数; ⑦ 非成员函数