php做网站主要怎么布局,网站的费用可以做无形资产吗,注册100万公司需要多少钱,如何做网站内容架构分析阅读下列说明和Java代码#xff0c;将应填入#xff08;n#xff09;处的字句写在答题纸的对应栏内。 【说明】 层叠菜单是窗口风格的软件系统中经常采用的一种系统功能组织方式。层叠菜单中包含的可能是一个菜单项#xff08;直接对应某个功能#xff09;#xff0c;也可…阅读下列说明和Java代码将应填入n处的字句写在答题纸的对应栏内。 【说明】 层叠菜单是窗口风格的软件系统中经常采用的一种系统功能组织方式。层叠菜单中包含的可能是一个菜单项直接对应某个功能也可能是一个子菜单现在采用组合composite设计模式实现层叠菜单得到如图6-2所示的类图。
package cn.itcast.hotel.test;import java.util.List;abstract class MenuComponent {//构成层叠菜单的元素(1) String name;public void printName() {System.out.println(name);}(2)public abstract boolean removeMenuElement(MenuComponent element);(3)}package cn.itcast.hotel.test;import java.util.ArrayList;
import java.util.List;/*** author lst* date 2023年11月28日 15:42*/
class Menu extends MenuComponent {(4)public Menu(String name) {this.name name;this.elementList new ArrayList();}public boolean addMenuElement(MenuComponent element) {return elementList.add(element);}public boolean removeMenuElement(MenuComponent element) {return elementList.remove(element);}public ListMenuComponent getElement() {return elementList;}}
package cn.itcast.hotel.test;import java.util.List;/*** author lst* date 2023年11月28日 15:44*/
class MenuItem extends MenuComponent {public MenuItem(String name) {this.name name;}public boolean addMenuElement(MenuComponent element) {return false;}public boolean removeMenuElement(MenuComponent element) {return false;}public ListMenuComponent getElement() {return null;}
}
package cn.itcast.hotel.test;import java.util.List;/*** author lst* date 2023年11月28日 15:45*/
class CompositeTest {public static void main(String[] args) {MenuComponent mainMenu new Menu(Insert);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();ListMenuComponent children ifile.getElement();if (children null) {return;}for (MenuComponent element : children) {printMenus(element);}}
}答案 1protected 2abstract boolean addMenuElement(MemuComponent element) 3abstract List getElement() 4List elementList 5mainMenu.addMenuElement(subMenu) 答案解析 本题是典型的组合模式应用。 首先根据类图中name标注的为#表示public-表示private#表示protected第1空对name的修饰应该是protected。 然后根据抽象类和实现类的对应关系可以补充第23空这两处缺失的方法根据下文代码进行补充注意方法名必须用abstract修饰并且注意抽象方法的写法没有具体方法体。其中第2空填写abstract boolean addMenuElement(MemuComponent element) 第3空填写abstract List getElement() 第4空缺失了一个属性此时根据下文的同名构造函数会发现此处传参给了this.name以及this.elementListname可以根据父类继承使用而elementList需要定义因此此处缺失的参数是elementList类型根据后面的赋值类型进行定义即第4空填写List elementList。 第5空看懂逻辑mainmenu中添加subMenu