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