当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《面向对象语言》课程教学资源(PPT课件讲稿)第6章 类与对象

资源类别:文库,文档格式:PPT,文档页数:44,文件大小:224.5KB,团购合买
本章主要介绍在 Visual Prolog6中的面向对 象的概念,并将列举一些实例,以使读者尽快熟悉这 个概念。主要内容包括对象模型、类实体、模块、创 建和访问对象、接口对象类型、多重实现、包容多态 性、 Support类型扩展、 Object超类型、继承以及 Visual Prolog5与 Visual Prolog6的差别等。
点击下载完整版文档(PPT)

第二部分:第6章类与对象 第6章类与对象 本章主要介绍在 Visua| Prolog6中的面向对象的 概念,并将列举一些实例,以使读者尽快熟悉这个概念。 主要内容包括对象模型、类实体、模块、创建和访问对 象、接口对象类型、多重实现、包容多态性、 Support 类型扩展、 objec超类型、继承以及 Visua| Prolog5 与 Visual prolog6的差别等。 2004.11.3 A|程序设计

2004.11.3 AI程序设计 1 第二部分:第6章 类与对象 第6章 类与对象 本章主要介绍在Visual Prolog 6中的面向对象的 概念,并将列举一些实例,以使读者尽快熟悉这个概念。 主要内容包括对象模型、类实体、模块、创建和访问对 象、接口对象类型、多重实现、包容多态性、Support 类型扩展、Object超类型、继承以及Visual Prolog 5 与Visual Prolog 6的差别等

第二部分:第6章类与对象 第6章类与对象 6.1对象模型 6.2类实体 6.3模块 6.4创建和访问对象 6.5接口对象类型 6.6多重实现 6.7包容多态性 68 support类型扩展 6.9 objecti超类型 6.10继承 6.11对象体系的其他特点 6.12Ⅵ sual Prolog5与 Visual Prolog6的差异 本章小结与习题 2004.11.3 A|程序设计

2004.11.3 AI程序设计 2 第二部分:第6章 类与对象 第6章 类与对象 6.1 对象模型 6.2 类实体 6.3 模块 6.4 创建和访问对象 6.5 接口对象类型 6.6 多重实现 6.7 包容多态性 6.8 support类型扩展 6.9 object超类型 6.10 继承 6.11 对象体系的其他特点 6.12 Visual Prolog 5与Visual Prolog 6的差异 本章小结与习题

第二部分:第6章类与对象 6.1对象模型 ●在vip6中,对象模型的语义实体是对象、对象类型和类。有关这些 实体的概念是接口、类的声明及实现。接口是一组命名的谓词声明。 接口描述了对象之间的“界面”,并因此而得名,即它是从一个对 象之外进入到对象内部的入口。接口描述了对象类型。 ●考虑这个接口定义 interface person predicates getName:o-> string Name setName:(string Name) end intertace person ●这是一个名为" person"的接口的定义。在这里,所有" person"类的 对象都有两个谓词 getName"和" setName",其声明如上所示。 2004.11.3 A|程序设计

2004.11.3 AI程序设计 3 第二部分:第6章 类与对象 6.1 对象模型 ⚫ 在Vip6中,对象模型的语义实体是对象、对象类型和类。有关这些 实体的概念是接口、类的声明及实现。接口是一组命名的谓词声明。 接口描述了对象之间的“界面”,并因此而得名,即它是从一个对 象之外进入到对象内部的入口。接口描述了对象类型。 ⚫ 考虑这个接口定义: interface person predicates getName : () -> string Name. setName : (string Name). end interface person ⚫ 这是一个名为"person"的接口的定义。在这里,所有"person"类的 对象都有两个谓词"getName"和"setName",其声明如上所示

第二部分:第6章类与对象 6.1对象模型 ●接口只定义对象的类型;而对象由类产生。一个类包含类的声明和 类的实现。一个创建 person对象的类可以这样声明: class person_ class: person constructors new:(string Name end class person_ class ●这是一个名为 person_class的类的声明,可以由 person_class类 构造 person类型的对象。这个类有一个名为new的构造函数,给 neW-个Name就能创建一个对象(属于 person类型)。 2004.11.3 A|程序设计

2004.11.3 AI程序设计 4 第二部分:第6章 类与对象 6.1 对象模型 ⚫ 接口只定义对象的类型;而对象由类产生。一个类包含类的声明和 类的实现。一个创建person对象的类可以这样声明: class person_class : person constructors new : (string Name). end class person_class ⚫ 这是一个名为person_class 的类的声明,可以由person_class类 构造person类型的对象。这个类有一个名为new的构造函数,给 new一个Name就能创建一个对象(属于person类型)

第二部分:第6章类与对象 6.1对象模型 ●这个类还需要一个实现,如下面的代码所示: implement person_class facts name string clauses new(Name): -name:= Name clauses getName(= name clauses setName(Name): -name: Name end implement person_class 2004.11.3 A|程序设计

2004.11.3 AI程序设计 5 第二部分:第6章 类与对象 6.1 对象模型 ⚫ 这个类还需要一个实现,如下面的代码所示: implement person_class facts name : string. clauses new(Name) :- name := Name. clauses getName() = name. clauses setName(Name) :- name := Name. end implement person_class

第二部分:第6章类与对象 6.1对象模型 ●这是名为 person_ class的类实现。这个实现必须为诸如neW、 getName和 setName的每个公共谓词和构造函数提供定义。这个 实现也可以局部声明和定义附加实体,这种实体仅在这个实现中可 见。在这个例子中,这个类声明了一个名为name的事实变量以存储 人的名字。 ●对于事实变量name,每个对象都有自己的实例。上面子句中的代码 都能引用具有事实变量的那个特例。我们把这种谓词称为对象谓词, 把这个事实变量称为对象事实。 2004.11.3 A|程序设计 6

2004.11.3 AI程序设计 6 第二部分:第6章 类与对象 6.1 对象模型 ⚫ 这是名为person_class的类实现。这个实现必须为诸如new、 getName和setName的每个公共谓词和构造函数提供定义。这个 实现也可以局部声明和定义附加实体,这种实体仅在这个实现中可 见。在这个例子中,这个类声明了一个名为name的事实变量以存储 人的名字。 ⚫ 对于事实变量name,每个对象都有自己的实例。上面子句中的代码 都能引用具有事实变量的那个特例。我们把这种谓词称为对象谓词, 把这个事实变量称为对象事实

令第二部分:第6童类与对象 6.2类实体 ●一个类也可以有为这个类的所有对象共享的实体。我们举个例子, 将上面的例子扩展,添加代码来为 person_ class类创建的对象个数 计数。这个数字会随着每个对象的创建而增加,且永不减少。 ●我们用一个谓词,即谓词 getcreateCount,将类声明予以扩展,这 个谓词用于返回当前计数值: class person_class: person constructors new:(string Name) predicates getcreated Count:->unsigned Count. end class person class 2004.11.3 A|程序设计

2004.11.3 AI程序设计 7 第二部分:第6章 类与对象 6.2 类实体 ⚫ 一个类也可以有为这个类的所有对象共享的实体。我们举个例子, 将上面的例子扩展,添加代码来为person_class类创建的对象个数 计数。这个数字会随着每个对象的创建而增加,且永不减少。 ⚫ 我们用一个谓词,即谓词getCreateCount,将类声明予以扩展,这 个谓词用于返回当前计数值: class person_class : person constructors new : (string Name). predicates getCreatedCount : () -> unsigned Count. end class person_class

令第二部分:第6童类与对象 6.2类实体 ●注意,公共可访问类谓词在类声明中进行声明,而公共可访问对象 谓词在接口中声明。这个规则没有例外:不可能在类声明中声明对 象谓词,也不可能在一个接口中声明类谓词。 ●这个谓词需要在类实现中定义。此外,还需要一个事实来存储计数 值。这个事实必须是一个类事实,即它为所有对象所共享。在一个 类的实现里,可以声明并定义私有对象实体以及私有类实体。声明 类实体时,在相关的声明段前加关键词 Iclass。 2004.11.3 A|程序设计 8

2004.11.3 AI程序设计 8 第二部分:第6章 类与对象 6.2 类实体 ⚫ 注意,公共可访问类谓词在类声明中进行声明,而公共可访问对象 谓词在接口中声明。这个规则没有例外:不可能在类声明中声明对 象谓词,也不可能在一个接口中声明类谓词。 ⚫ 这个谓词需要在类实现中定义。此外,还需要一个事实来存储计数 值。这个事实必须是一个类事实,即它为所有对象所共享。在一个 类的实现里,可以声明并定义私有对象实体以及私有类实体。声明 类实体时,在相关的声明段前加关键词class

令第二部分:第6童类与对象 6.2类实体 ●注意,我们的 person_class类的实现如下: implement person class class facts ●在本例中,我们添加了一个类 created Count: unsigned: =0 事实 create count,并将其初始 clauses 化为零。并且为谓词 getCreated Count(= created Count getcreate Count添加了一个子 facts 句 用于返回事实 name: string created count的当前值。最后, clauses new(Name) 我们在构造函数中添加代码,使 name:= Name 变量 created Count递增。 created Count created Count 1 ●注意,在构造函数中,有两处 clauses getName(= name 赋值形式相同,但一个是更新对 象状态的,另一个是更新类的状 clauses setName (Name): -name:= Name 态的 end implement person_ class 2004.11.3 A|程序设计

2004.11.3 AI程序设计 9 第二部分:第6章 类与对象 6.2 类实体 ⚫ 注意,我们的person_class类的实现如下: implement person_class class facts createdCount : unsigned := 0. clauses getCreatedCount() = createdCount. facts name : string. clauses new(Name) :- name := Name, createdCount := createdCount+1. clauses getName() = name. clauses setName(Name) :- name := Name. end implement person_class ⚫在本例中,我们添加了一个类 事实createCount,并将其初始 化为零 。 并且为谓词 getCreateCount添加了一个子 句 , 用 于 返 回 事 实 createdCount的当前值。最后, 我们在构造函数中添加代码,使 变量createdCount递增。 ⚫注意,在构造函数中,有两处 赋值形式相同,但一个是更新对 象状态的,另一个是更新类的状 态的

令第二部分:第6童类与对象 6.3模块 ●类的一种特殊变体根本不能产生对象,所以就它们所起的作用来讲, 应称之为“模块”而不是类。 class io no type here predicates write:(string ToWrite) write: (unsigned ToWrite) end class io ●这样一个不能创建对象的类很明显是不能包含对象实体的,也不可 能有构造函数。 2004.11.3 A|程序设计 10

2004.11.3 AI程序设计 10 第二部分:第6章 类与对象 6.3 模块 ⚫ 类的一种特殊变体根本不能产生对象,所以就它们所起的作用来讲, 应称之为“模块”而不是类。 class io % no type here predicates write : (string ToWrite). write : (unsigned ToWrite). end class io ⚫ 这样一个不能创建对象的类很明显是不能包含对象实体的,也不可 能有构造函数

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共44页,可试读15页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有