第九节抽象数据类型 1.用户定义类型与内部类型的异同 ①都建立某种基本表示的抽象 如 Integer是位串的抽象; reg_ polygon是记录的抽象 ②每类型都关联一组操作 ③内部类型隐蔽了基本表示,不能对 它的成分进行操作;用户定义类型具 有更高级别的抽象,可以对其基本 表示的成分进行操作
第九节 抽象数据类型 1. 用户定义类型与内部类型的异同 ①都建立某种基本表示的抽象 如:integer是位串的抽象; reg_polygon是记录的抽象 ②每一类型都关联一组操作 ③内部类型隐蔽了基本表示,不能对 它的成分进行操作;用户定义类型具 有更高级别的抽象,可以对其基本 表示的成分进行操作
2.抽象数据类型的定义 满足下述特性的用户定义类型称为抽象 数据类型 ①在实现该类型的程序单元中,建立与 表示有关的基本操作; ②对使用该类型的程序单元来说该类 型的表示是隐蔽的
2. 抽象数据类型的定义 满足下述特性的用户定义类型称为抽象 数据类型: ①在实现该类型的程序单元中,建立与 表示有关的基本操作; ②对使用该类型的程序单元来说,该类 型的表示是隐蔽的
SIMULA67的类机制 1类的说明 <类头>类体> <类头>包括类名和形式参数 类体是传统的分程序,可包含变量、过程 和类的局部说明,以及一些执行语句 例:复数表示(幅角半径)
一. SIMULA 67的类机制 1.类的说明 <类头>;<类体> <类头>包括类名和形式参数 <类体>是传统的分程序, 可包含变量、过程 和类的局部说明,以及一些执行语句 例:复数表示(幅角,半径)
class complex (x,y); real x,y; begin real angle, radius; - a radiuS: =sqrt (X**2+y**2) if abs (x) <epsilon then begin if abs(y epsilon then error else begin if y>epsilon then angle: =pi/2 else angle = 3*pi/2 end end else angle: =arctan(y/x) end complex
class complex(x,y);real x,y; begin real angle,radius; radius:=sqrt(x**2+y**2); if abs(x)<epsilon then begin if abs(y)<epsilon then error else begin if y>epsilon then angle:=pi/2 else angle:=3*pi/2 end end else angle:=arctan(y/x) end complex
2.类的有关性质 ①类说明定义了一类数据对象的原型 或样板 ②类的每个实例是一个可操作的数据 对象 ③类的实例可多次动态建立且仅能通 过指针引用 例: ref(complex)c; C: -new complex(1.0, 1.0)
2. 类的有关性质 ①类说明定义了一类数据对象的原型 或样板 ②类的每个实例是一个可操作的数据 对象 ③类的实例可多次动态建立,且仅能通 过指针引用 例: ref(complex) c; c:- new complex(1.0, 1.0);