第9章 面向对象语言的编译 本章内容 概述面向对象语言的重要概念和实现技术 以C++语言为例,介绍如何将C++程序翻译 成C程序 实际的编译器大都把C++程序直接翻译成低 级语言程序
第9章 面向对象语言的编译 本章内容 • 概述面向对象语言的重要概念和实现技术 • 以C++语言为例,介绍如何将C++程序翻译 成C程序 • 实 的编译 大都把 实际的编译器大都把C++程序直接翻译成低 程序直接翻译成低 级语言程序
9.1面向对象语言的概念 9.1.1对象和对象类 对象 一由一组属性和操作于这组属性的过程组成 一属性到值的映射称为对象的状态,过程称为方法 对象类 一类对象的总称,规范了该类中对象的属性和方 法,包括它们的类型和原型 对象有自己存放属性的存储单元;同一个类的对 象可以共享方法的代码 对象类形成了面向对象语言的模块单元 下面将把术语“类”和“类型”看成是同义的
9 1. 面向对象语言的概念 9.1.1 对象和对象类 • 对象 – 由一组属性和操作于这组属性的过程组成 – 属性到值的映射称为对象的状态,过程称为方法 • 对象类 – 一类对象的总称,规范了该类中对象的属性和方 法,包括它们的类型和原型 – 对象有自己存放属性的存储单元;同一个类的对 象 以共享方法的代 象可以共享方法的代码 – 对象类形成了面向对象语言的模块单元 – 下面将把术语“类”和“类型”看成是同义的
9.1面向对象语言的概念 9.1.2继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale ClosedGraphics length area Ellipse PolyGon translate area scale area Rectangle Triangle area
9 1. 面向对象语言的概念 9.1.2 继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale ClosedGraphics … … length area Ellipse translate PolyGon area … … scale area R l Ti l … … Rectangle area Triangle
9.1面向对象语言的概念 继承 基类、派生类、子类、抽象类 子类型规则 当某个类型的一个对象在某个输入位置被需要或作 为函数的返回值时,其任何子类型的对象允许出现 在这些地方 类B的一个对象,若它不同时是B的某个真子 类的对象,那么称该对象是B的真对象,称B 是该对象的运行时类型
9 1. 面向对象语言的概念 继承 • 基类、派生类、子类、抽象类 • 子类型规则 当某个类型的一个对象在某个输入位置被需要或作 为函数的返回值时,其任何子类型的对象允许出现 在这些地方 • 类B的一个对象,若它不同时是B的某个真子 类的对象,那么称该对象是 那么称该对象是B的真对象,称B 是该对象的运行时类型
9.1面向对象语言的概念 9.1.2继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale ClosedGraphics length area Ellipse PolyGon translate area scale area Rectangle Triangle area
9 1. 面向对象语言的概念 9.1.2 继承 图形对象的继承层次结构 GraphicalObj translate scale PolyLine translate scale ClosedGraphics … … length area Ellipse translate PolyGon area … … B scale area area R l Ti l … … B Rectangle area Triangle