阅读下列说明和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) 解析:Composite模式定义:将对象以树型结构组织起来,以达成“部分-整体”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。Composite比较容易理解,想到Composite就应该想到树型结构图。组合体内这些对象都有共同接口,当组合体一个对象的方法被调用执行时,Composite将遍历(Iterator)整个树形结构,寻找同样包含这个方法的对象并实现调用执行。AbstractFile为一个抽象文件类,其作用主要是实现对文件或者文件夹的抽象。文件类File继承自AbstractFile。File(stringname)为File类的一个属性,用于获取文件名称。Add-child方法用来给一个目录增加子目录或文件。Removechild方法用于删除一个目录的子目录或文件。Getchildren方法用于获取一个目录或文件,所以返回值类型应该是一个列表形式的AbstractFile,但文件本身不包括子目录,故返回NUIJIJ。Fold类表示一个文件夹,属性Folder用于获取文件夹名称,Getchildren方法返回值应为List型的AbstractFile对象指针。
试题基于以下的5阶B树结构,该B树现在的层数为2。 往该B树中插入关键码72后,该B树的第2层的结点 计算机类考试 2020-05-23 …
至(14)题基于以下的5阶B树结构,该B树现在的层数是2。(13)往该B树中插入关键码72后,该B树 计算机类考试 2020-05-23 …
基于以下的5阶B树结构,该B树现在的层数是2。 往该B树中插入关键码72后,该B树的第2层的结点数为 计算机类考试 2020-05-23 …
第13和14题基于以下的5阶B树结构,该B树现在的层数为2。往该B树中插入关键码72后,该B树的第1 计算机类考试 2020-05-23 …
下列问题基于以下的5阶B树结构,该B树现在的层数是2。 往该B树中插入关键码72后,该B树的第2层的 计算机类考试 2020-05-24 …
下列问题是基于以下的5阶B树结构,该B树现在的层数为2。 往该B树中插入关键码72后,该B树的第2层 计算机类考试 2020-05-24 …
1、小实验“人造雪景”:在一个烧瓶内放入少量萘(樟脑丸)粉末,然后加热,再将一枯树枝放入烧瓶口内, 物理 2020-07-05 …
.比利时化学家海尔蒙特曾做过这样一个实验:将一颗柳树苗载入经烘干称重的一盆泥土中,经常浇水,五年后 化学 2020-07-12 …
1.将一片树叶放入液氧中,一分钟之后拿出来,会出现什么情况?A.树叶会卷起来B.树叶会变成黄色C. 其他 2020-07-24 …
传说从一株苹果树上坠落的苹果激发牛顿发现了万有引力定律.2010年5月14日,英国皇家学会委托国家宇 其他 2020-11-13 …