首页 > 题库 > 职业考证 > 软考 > 软件设计师 > 案例题

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
层叠菜单是窗口风格的软件系统中经常采用的一种系统功能组织方式。层叠菜单(如图5-1示例)中包含的可能是一个菜单项(直接对应某个功能),也可能是一个子菜单,现在采用组合(composite)设计模式实现层叠菜单,得到如图5-2所示的类图,层叠菜单(如图5-1示例)。



            图5-2   类图

import java.util.*;

abstract class MenuComponent { // 构成层叠菜单的元素
(1) String name; // 菜单项或子菜单名称
public void printName() { System.out.println(name); }
public (2) ;
public abstract boolean removeMenuElement(MenuComponent element);
public (3) ;
}

class MenuItem extends MenuComponent {
public MenuItem(String name) { this.name=name; }
public boolean addMenuElement(MemuComponent element) { return false; }
public boolean removeMenuElement(MenuComponent element){ return false; }
public List<MenuComponent> getElement(){ return null; }
}

class Menu extends MemuComponent {
private (4);
public Menu(String name){
this.name = name;
this.elementList = new ArrayList<MenuComponent>;
}
public boolean addMenuElement(MenuComponent element){
return elementList.add(element);
}
public boolean removeMenuElement(MenuComponent element){
return elementList.remove(element);
}
public List<MenuComponent> getElement() {return elementList;}
}

class CompositeTest {
public static void main(String[] args) {
MenuComponent mainMenu = new Menu(“AB”);    //此处字符不清晰,以“AB”代替原文

MenuComponent subMenu = new Menu(“Chart”);
MenuComponent element = new MenuItem(“On This Sheet”);
(5);
subMenu.addMenuElement(element);
printMenus(mainMenu);
}
private static void printMenus(MenuComponent ifile){
ifile.printName();
List<MenuComponent> children = ifile.getElement();
if(children == null) return; //打印
for(MenuComponent element; children){
printMenus(element);
}
}
}

参考答案: 查看答案 查看解析 查看视频解析 下载APP畅快刷题

相关知识点试题

相关试卷