第三部分:第13章编译单元 13.3类实现 本节介绍类实现( Class imp| emendations) 的有关知识,包括类实现的基本概念、继承限定 ( Inherits Qualification)、归结限定 ( resolve qualification)、委托限定 ( Delegate Qualification)、This修饰、构造 ( Construction)、终结( Finalization)等内 2004.113 A|程序设计 16
第三部分:第13章 编译单元 2004.11.3 AI程序设计 16 13.3 类实现 本节介绍类实现(Class Implementations) 的有关知识,包括类实现的基本概念、继承限定 (Inherits Qualification)、归结限定 (resolve qualification)、委托限定 (Delegate Qualification)、This修饰、构造 (Construction)、终结(Finalization)等内 容
第三部分:第13章编译单元 13.3.1类实现的基本概念 类实现用于提供类声明中所声明的谓词的定义和构造器,以及它构造 的对象所支持的任意谓词的定义。 类可以私有地(即在实现内部)声明和定义比类声明中提到的更多的 实体。特别地,一个实现可以声明用于实现类和对象声明的事实数据库。 实现是一个混合作用域,在这个意义上来说,它包括了类的实现和类 所产生的对象。类中的类部件在类的所有对象间共享,与对象部件相反, 对象部件相对每个对象来说是单独的。类部件和对象部件都可以包含事 实和谓词,而论域、算符和常量总是属于类部件,就是说它们不属于单 个对象。 2004.113 A|程序设计
第三部分:第13章 编译单元 2004.11.3 AI程序设计 17 13.3.1 类实现的基本概念 类实现用于提供类声明中所声明的谓词的定义和构造器,以及它构造 的对象所支持的任意谓词的定义。 类可以私有地(即在实现内部)声明和定义比类声明中提到的更多的 实体。特别地,一个实现可以声明用于实现类和对象声明的事实数据库。 实现是一个混合作用域,在这个意义上来说,它包括了类的实现和类 所产生的对象。类中的类部件在类的所有对象间共享,与对象部件相反, 对象部件相对每个对象来说是单独的。类部件和对象部件都可以包含事 实和谓词,而论域、算符和常量总是属于类部件,就是说它们不属于单 个对象
第三部分:第13章编译单元 13.3.1类实现的基本概念 缺省时,类实现中声明的所有谓词和事实对象都是对象成员。为了声 明对象成员,段关键字(即 predicates和 facts)前必须加上前缀 cass。所有在这样的段中声明的成员都是类成员 类成员可以引用类的类部件,但是不能引用对象部件。 另一方面,对象成员既可以访问类的类部件,又可以访问对象部件。 在实现的代码中,所有对象谓词都包含宿主对象。所包含的宿主对象 也可以直接通过特殊变量"Ths"来访问 classimplementation: implement className scopequalifications sections end implement className-opt 在类实现尾部的类名 className(如果存在的话)必须与其头部的 类名 className一致。 2004.113 A|程序设计 18
第三部分:第13章 编译单元 2004.11.3 AI程序设计 18 13.3.1 类实现的基本概念 缺省时,类实现中声明的所有谓词和事实对象都是对象成员。为了声 明对象成员,段关键字(即predicates 和 facts)前必须加上前缀 class。所有在这样的段中声明的成员都是类成员。 类成员可以引用类的类部件,但是不能引用对象部件。 另一方面,对象成员既可以访问类的类部件,又可以访问对象部件。 在实现的代码中,所有对象谓词都包含宿主对象。所包含的宿主对象 也可以直接通过特殊变量"This"来访问。 classImplementation : implement className scopeQualifications sections end implement className-opt 在类实现尾部的类名className(如果存在的话)必须与其头部的 类名className一致
第三部分:第13章编译单元 13.3.1类实现的基本概念 作用域限定 ScopeQualifications必须是下面的几种: 支持限定 supportsQualification 开放限定 openQualification 继承限定 inheritQualification 归结限定 resolveQualification 委托限定 delegate Qualification 支持限定描述接口列表,这些接口由类实现私有地给予支持。委托 限定把接口谓词或对象的功能委托给对象谓词,它们可以作为事实变量 被存储起来。 2004.113 A|程序设计 19
第三部分:第13章 编译单元 2004.11.3 AI程序设计 19 13.3.1 类实现的基本概念 作用域限定ScopeQualifications必须是下面的几种: • 支持限定supportsQualification • 开放限定openQualification • 继承限定inheritQualification • 归结限定resolveQualification • 委托限定delegateQualification 支持限定描述接口列表,这些接口由类实现私有地给予支持。委托 限定把接口谓词或对象的功能委托给对象谓词,它们可以作为事实变量 被存储起来
第三部分:第13章编译单元 13.3.1类实现的基本概念 段必须是以下几种 常量段 constants section 论域段 domains section 谓词段 predicatessection 构造器段 constructors section 事实段 facts section 子句段 clauses section ·条件段 conditionalsection 只有类的类名 className声明了一个构造类型 constructionType 时,构造器段 constructors sections才是合法的。声明了一个构造类 型 constructionType的那些类也是对象构造器,可以构造所声明的构 造类型的对象。 2004.113 A|程序设计
第三部分:第13章 编译单元 2004.11.3 AI程序设计 20 13.3.1 类实现的基本概念 段必须是以下几种: • 常量段constantsSection • 论域段domainsSection • 谓词段predicatesSection • 构造器段constructorsSection • 事实段factsSection • 子句段clausesSection • 条件段conditionalSection 只有类的类名className声明了一个构造类型constructionType 时,构造器段constructorsSections才是合法的。声明了一个构造类 型constructionType的那些类也是对象构造器,可以构造所声明的构 造类型的对象