早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】现欲构造一文件/目录树

题目

阅读下列说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。

【说明】

现欲构造一文件/目录树,采用组合(Composite)设计模式来设计,得到的类图如6—8所示:

【Java代码】

import JavA.util.ArrayList;

import JavA.util.List;(1)class AbstractFile{

protected String name;

public void printName(){System.out.println(name);}

public abstract boolean addChild(AbstractFile file);

public abstract boolean removeChild(AbstractFile file);

public abstract ListgetChildren {};

}

class File extends AbstractFile{

public File(String name)(this.name=name;}

public boolean addChild(AbstractFile file){return false;}

public boolean removeChild(AbstractFile file){return false;}

public ListgetChildren(){return (2) ;)

}

clasS Folder extends AbstractFile{

private ListchildList;

public Folder(String name){

thiS.name=name;

this.childList=new ArrayList{};

}

public boolean addChild(AbstractFile file){return childList.add(file);}

public boolean removeChild(AbstractFile file){return childList.remove(file);

public (3)getChildren(){return (4) ;)

}

public class Client{

public static void main(String[]args){

//构造一个树形的文件/目录结构

AbstractFile rootFolder=new Folder(“C:\”’);

AbstractFile compositeFolder=new Folder(”composite”);

AbstractFile windowsFolder=new Folder(”windows”);

AbstractFile file=new File(”TestComposite.java”);

rootFOlder.addChild (compositeFolder);

rootFolder.addChiid(windowsFolder);

compositeFolder.addChild(file);

//打印目录文件树

printTree(rootFolder);

}

private static void printTree(AbstractFile ifile){

ifile.PrIntName();

Listchildren:ifile.getChildren ();

if(chiidren==null)return;

for(AbstractFile file:children){(5) ;

}

}

}

该程序运行后输出结果为:

C:\

composite

TestComposite.java

Windows

参考答案
正确答案:(1)Abstract(2)null(3)List(4)childList(5)printTree(file)
(1)Abstract(2)null(3)List(4)childList(5)printTree(file) 解析:Composite模式定义:将对象以树型结构组织起来,以达成“部分-整体”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。Composite比较容易理解,想到Composite就应该想到树型结构图。组合体内这些对象都有共同接口,当组合体一个对象的方法被调用执行时,Composite将遍历(Iterator)整个树形结构,寻找同样包含这个方法的对象并实现调用执行。AbstractFile为一个抽象文件类,其作用主要是实现对文件或者文件夹的抽象。文件类File继承自AbstractFile。File(stringname)为File类的一个属性,用于获取文件名称。Add-child方法用来给一个目录增加子目录或文件。Removechild方法用于删除一个目录的子目录或文件。Getchildren方法用于获取一个目录或文件,所以返回值类型应该是一个列表形式的AbstractFile,但文件本身不包括子目录,故返回NUIJIJ。Fold类表示一个文件夹,属性Folder用于获取文件夹名称,Getchildren方法返回值应为List型的AbstractFile对象指针。