- 2
- 0
- 约7.36千字
- 约 44页
- 2017-02-12 发布于重庆
- 举报
07第七讲
第九节 抽象数据类型 1. 用户定义类型与内部类型的异同 ①都建立某种基本表示的抽象 如:integer是位串的抽象; reg_polygon是记录的抽象 ②每一类型都关联一组操作 ③内部类型隐蔽了基本表示,不能对它的成分进行操作;用户定义类型具有更高级别的抽象,可以对其基本表示的成分进行操作。 2. 抽象数据类型的定义 满足下述特性的用户定义类型称为抽象数据类型: ①在实现该类型的程序单元中,建立与 表示有关的基本操作; ②对使用该类型的程序单元来说,该类 型的表示是隐蔽的。 一. SIMULA 67的类机制 1.类的说明 类头;类体 类头包括类名和形式参数 类体是传统的分程序, 可包含变量、过程和类的局部说明,以及一些执行语句 例:复数表示(幅角,半径) 2. 类的有关性质 ①类说明定义了一类数据对象的原型或样板 ②类的每个实例是一个可操作的数据对象 ③类的实例可多次动态建立,且仅能通过指针引用 例: ref(complex) c; c:- new complex(1.0, 1.0); ④类实例的属性是指类体的局部变量和类头中的参数 my_angle:=c.angle; my_radius:=c.radius; my_x:=c.x; my_y:=c.y; ⑤类支持抽象数据类型的封装机制,它可以封装实现对数据操作的各种过程 例: 可将复数加和乘的过程add和multiply封装入类complex的类体说明中, 作为complex的属性。 procedure add(operand);ref (complex) operand procedure multiply(operand);ref (complex) operand 变量c1、c2引用的两个复数相加可表示为:c1.add(c2) 或 c3.angle:=c1.angle; c3.radius:=c1.radius+c2.radius; 用户可以直接访问复数的内部表示, 故add和multiply不是复数对象的唯一操作 3. 子类 用以定义类型的判定或和类属。 要求:定义一个栈,完成 引用栈顶元素 入栈 出栈 判栈是否空 (这些操作与栈中元素的类型无关) 栈内成员的元素类 class stack_member; begin ref (stack_member) next_member; next_member:-none end class stack; begin ref (stack_member) first; ref (stack_member) procedure top; top:-first; procedure pop; if ?empty then first:-first.next_member; procedure push(e);ref (stack_member) e; begin if first =/=none then e.next_member:-first; first:-e end push; boolean procedure empty; empty:=first= =none; first:-none end stack stack_member class complex(……); …… end complex 定义了一个复数栈 其中complex称为stack_member的子类 ①子类complex具有自己的属性,同时继承了stack_member的属性 new complex 产生的对象具有stack_member和complex的所有属性 ref(stack) s; s:-new stack; s.push(c1); s.push(c2); s.push(c3); ②具有ref(stack_member)的变量可引用多种类型的量,但不同类型的元素不得压入同一栈实例中 下述语句说明向量也可是栈中元素: stack_member class vector(…);
您可能关注的文档
- 07第七章MFC程序设计窗口绘图.ppt
- 07第七章假设检验与方差分析习题答案.doc
- 07第七章人类染色体和染色体畸变.ppt
- 07第七章国际资本流动.ppt
- 07第七章巷道支护.ppt
- 07第七章岩体.ppt
- 07第七章并行通信(本科).ppt
- 07第七章并行通信.ppt
- 07第七章微波遥感.ppt
- 07第七章总供给与总需求.ppt
- 七年级语文上册期末模拟试卷1(解析版).docx
- 七年级语文上册期末模拟试卷1(原卷版).docx
- 七年级语文上册期末模拟试卷2(原卷版).docx
- 七年级语文上册期末模拟试卷2(解析版).docx
- 期末测试卷(二)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(二)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
原创力文档

文档评论(0)