第二部分:第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