实现Java三级菜单

在Java程序中实现一个三级菜单,可以帮助用户在多个选项中进行选择,并执行相应的操作。下面将介绍如何创建一个简单的三级菜单系统。

设计思路

  1. 创建一个菜单类Menu,每个Menu对象代表一个菜单选项
  2. 每个菜单选项可以包含子菜单,形成三级菜单结构
  3. 使用递归的方式实现菜单的显示、选择和执行操作

Menu类设计

首先定义一个Menu类,包含菜单名称、子菜单列表和执行操作的方法。

public class Menu {
    private String name;
    private List<Menu> subMenus;
    
    public Menu(String name) {
        this.name = name;
        this.subMenus = new ArrayList<>();
    }
    
    public void addSubMenu(Menu menu) {
        this.subMenus.add(menu);
    }
    
    public void display() {
        System.out.println(name);
        for (Menu subMenu : subMenus) {
            System.out.println(subMenu.name);
        }
    }
    
    public void execute() {
        // 执行具体操作
        System.out.println("Executing " + name);
    }
}

构建三级菜单

在主程序中构建一个三级菜单结构,每个菜单选项可以包含子菜单。

public class Main {
    public static void main(String[] args) {
        Menu rootMenu = new Menu("Root");
        
        Menu menu1 = new Menu("Menu 1");
        Menu menu2 = new Menu("Menu 2");
        Menu menu3 = new Menu("Menu 3");
        
        Menu subMenu1 = new Menu("Sub Menu 1");
        Menu subMenu2 = new Menu("Sub Menu 2");
        
        menu1.addSubMenu(subMenu1);
        menu1.addSubMenu(subMenu2);
        
        rootMenu.addSubMenu(menu1);
        rootMenu.addSubMenu(menu2);
        rootMenu.addSubMenu(menu3);
        
        rootMenu.display();
    }
}

递归显示菜单及操作

在Menu类中定义递归方法,用于显示菜单和执行操作。

public void display() {
    System.out.println(name);
    for (Menu subMenu : subMenus) {
        subMenu.display();
    }
}

public void execute() {
    // 执行具体操作
    System.out.println("Executing " + name);
    for (Menu subMenu : subMenus) {
        subMenu.execute();
    }
}

序列图

下面是实现Java三级菜单的序列图示例:

sequenceDiagram
    participant User
    participant Menu
    User->>Menu: 选择Root菜单
    Menu->>Menu: 显示Root菜单
    Menu->>Menu: 显示Menu 1
    Menu->>Menu: 显示Sub Menu 1
    Menu->>Menu: 显示Sub Menu 2
    Menu->>Menu: 显示Menu 2
    Menu->>Menu: 显示Menu 3

类图

下面是Menu类的类图示例:

classDiagram
    class Menu {
        -String name
        -List<Menu> subMenus
        +Menu(name: String)
        +addSubMenu(menu: Menu): void
        +display(): void
        +execute(): void
    }

通过以上代码示例和图示,我们实现了一个简单的Java三级菜单系统。用户可以在多个选项中进行选择,并执行相应的操作。可以根据实际需求扩展菜单功能,让用户体验更加友好和便捷。