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(AbstractF ile file);
public abstract List<AbstractFile> getChildren();
}
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 List<AbstractFile> getChildren(){return (2) ;}
}
class Folder extends AbstractFile{
private List <AbslractFile> childList;
public Folder(String name){
this.name=name;
this.childList=new ArrayList<AbstractFile>();
}
public boolean addChild(AbstractFile file) { return childList.add(file);}
public boolean removeChild(AbstractFile file){return childList.remove(file);}
public (3) <AbstractFile> getChildren(){return (4) ;}
}
public class Client{
public static void main(String[] args){
//构造一个树形的文件/目录结构
A.bstractFile rootFolder= new Folder("c:// ");
A.bstractFile compositeFolder=new Folder("composite");
A.bstractFile windowsFolder=new Folder("windows");
A.bstractFile file=new File("TestComposite.java");
rootFolder.addChild(compositeFolder) ;
rootFolder.addChild(windowsFolder);
compositeFolder.addChild(file) ;
//打印目录文件树
printTree(rootFolder);
}
private static void printTree(AbslractFile ifile){
ifile.printName();
List <AbslractFile> children=ifile.getChildreno:
if(children==null) return;
for (AbstractFile file:children) {
(5) ;
}
}
}
该程序运行后输出结果为:
c:/
composite
TestComposite.java
Windows
[单选题]设有如下程序: import java.util.*; public class Sun { public static void main (String args[ ]) { int score; String a; Random r=new Random (); score=r.nextInt (4)+5; switch(score) { case 0: a="E"; break; case 1: a="D"; break; case 2: a="C"; break; case
[单选题]设有如下程序: import java.util.*; public class Sun { public static void main(String args[ ]) { int score; String a; Random r=new Random(); score=r.nextInt(4)+5; switch(score) { case 0: a="E"; break; case 1: a="D"; break; case 2: a="C"; break; case 3:
[单选题]给定如下Java程序代码片段,编译运行这段代码,结果是( )。java.util.HashMapmap=newjava.util.HashMap();map.put("name",null);map.put("name","Jack");System.out.println(map.get("name"));A.nullB.JackC.nullJackD.运行时出现异常
[单选题]给定如下Java程序代码片段,编译运行这段代码,结果是()。java.util.HashMap map=new java.util.HashMap();map.put("name",null);map.put("name","Jack");System.out.println(map.get("name"));A . nullB . JackC . nullJackD . 运行时出现异常
[试题]阅读以下说明和Java代码,填补空缺。[说明]java.util库中提供了Vector模板类,可作为动态数组使用,并可容纳任意数据类型。该类的部分方法说明如下所示:方法名 含义add(k) 向vector对象的尾部添加一个元素kremoveElementAt(i) 删除序号为i的元素(vector元素序号从0开始)isEmpty( ) 判断vector对象是否含有元素size( ) 返回vector对象中所包含的元素个数[Java代码]Import ________;public class Ja
[试题]java.sql.Date与java.util.Date的区别?
[单选题]下面程序代码运行结果为( )。 import java.awt.*; public class Test { public static void main (String args[]) { String s1="a+b+c"; String s2="+"; int i=s1.lastIndexOf (s2); System.out.println(i); } }A.0B.1C.2D.3
[单选题]下列代码中的内部类名是______。import java.awt.event.*;import javax.swing.*;class Talkingclock{public void start (int interval, final boolean beep){A.ctionListener listener=newA.ctionListener(){public void actionPerformed (ActionEvent event) {......}}Timer t=new
[试题]简述synchronized 和java.util.concurrent.locks.Lock的异同?
[试题]简述synchronized 和java.util.concurrent.locks.Lock的异同?