问答题
阅读下列说明和Java代码,在
(n) 处填入适当的字句。
[说明]
已知某类库开发商提供了一套类库,类库中定义了Application类和Document类,它们之间的关系如图10.32所示,其中,Application类表示应用程序自身,而Document类则表示应用程序打开的文档。Application类负责打开一个已有的以外部形式存储的文档,如一个文件,一旦从该文件中读出信息后,它就由一个Document对象表示。
当开发一个具体的应用程序时,开发者需要分别创建自己的Application和Document子类,例如图10.32中的类MyApplication和类MyDocument,并分别实现Application和Document类中的某些方法。
【正确答案】(1) Document (2) aDocument (3) !canOpenDocument(docName)
(4) Document (5) doCreateDocument() (6) adoc.open(docName)
(7) adoc.read(docName) (8) addDocument(adoc)
【答案解析】[分析] 本题考查的是面向对象编程,题目中的类结构实际上是一个创建型的设计模式,如果对此设计模式了解,并了解基本语法,解题是比较容易的。程序解释如下。
abstract claSS Appplication{
private Vector <(1)Document>docs;/*文档对象集合,由Application类中的公有函数void addDocument(Document aDocument)将文档对象添加到文档对象集合中可知,此处数据类型是Document。*/public boolean canOpenDocument(String docName){
/*判断是否可以打开指定文档,返回真值时表示可以打开,返回假值表示不可打开,此处代码省略*/
}
public void addDocument (Document aDocument){
/*将文档对象添加到文档对象集合中*/
docs .add((2)aDocument); /*实现添加一个新数据,由函数addDocument()的参数可知将文档对象aDocument加入到文档对象集合docs中。*/
}
public abstract Document doCreateDocument(); /*创建一个文档对象*/
public void openDocument(String docName)(/*打开文档*/
if((3)!canOpenDocument(docName ))(/*由输出语句以及该函数的功能是打开文档可知,if语句的判定条件为当文档不能打开时执行cout<<"文档无法打开!"<<end1;再由Application类的公有函数boolean canOpenDocument(String docName)判断是否可以打开指定文档,返回真值时表示可以打开,返回假值表示不可打开,可知此处应填!canOpenDocument(docName)。*/
System.out.println("文档无法打开!");
return;
}
/*已知Application类中的openDocument方法采用了模板方法(Template Method)设计模式,该方法定义了打开文档的每一个主要步骤,如下所示:(1)首先检查文档是否能够被打开,若不能打开,则给出出错信息并返回;(2)创建文档对象;(3)通过文档对象打开文档;(4)通过文档对象读取文档信息;(5)将文档对象加入到Application的文档对象集合中,理解操作过程,即可对(4)~(8)填空。*/
(4) Document adoc=(5)doCreateDocument();//要对文档进行操作就要创建一个文档对象
(6) adoc.open(docName);//通过文档对象打开文档;
(7) adoc.read(docName);//通过文档对象读取文档信息;
(8)addDocument(adoc);//将文档对象加入到Application的文档对象集合中
}
};