阅读以下说明和Java代码,填写代码中的空缺,将解答写入答题纸的对应栏内。
【说明】
某系统需根据类别和内容对数据以文件夹的方式进行组织,数据自身以文件的形式存储,文件夹可以包含文件夹和文件。为该系统设计的相关类及其关系如图5-1所示。
【Java代码】
import java.util.ArrayList;
import java.util.List;
abstract class Node {
protected string name; l/文件或文件夹名称
public void printName ( ) { System.out.println (name) ; }
public abstract boolean add (Node node); //为一个文件夹增加子文件夹或文件
public abstract boolean remove(Node node); //删除一个文件夹的子文件夹或文件
public abstract List<Node> getchildren( ); //获得一个文件夹的子文件夹或文件
}
class File(1)Node {
public File (string name) { (2) = name; }
public boolean add (Node node) { return false; }
public boolean remove (Node node){ return false; }
public List<Node> getChildren () { return(3); }
}
class Folder (4) Node {
private List <Node> children;
public Folder (string name) {
this.name = name;
this.children = new ArrayList<Node> ( ) ;
}
public boolean add (Node node){ return children.add (node); }
public boolean remove (Node node) { return children.remove (node);}
public List<Node>getChildren () { return(5);
}
public class client {
private void traverse (Node node) {
node. printName ( );
List <Node> children =(6);
if(children == null) return ;
for (Node child : children) {
traverse (child) ;
}
}
public void createTree ( ) { //构造一个树形文件夹和文件结构
Node root = new Folder ( "D:/ ") ;
Node folder = new Folder ( "parent" ) ;
Node child = new Folder ( "cxy" ) ;
Node file = new File ( "TestFile.java" ) ;
root.add ( folder) ;
folder.add ( child) ;
child.add (file) ;
traverse (root) ; //遍历目录文件树
}
public static void main (string [ ] args){
Client client = new Client () ;
client.createTree () ;
}
}