选择菜单,从Java用户中选择

时间:2018-11-22 09:54:30

标签: java intellij-idea cmd

所以在我的Java程序中,我有4个类。我想选择一个菜单,并根据用户的选择运行适当的类。这怎么会发生?

这是一个基于文本的记忆游戏。我想在CMD中运行它。

3 个答案:

答案 0 :(得分:0)

您将再创建一个具有main()方法的类。我们将其称为Runner类。

在Runner类中,您需要从用户那里获取输入。使用ScannerBufferedReader相同。

阅读用户输入后,您只需在用户输入上执行switch caseif else即可实例化所选类的对象。实例化后,使用实例化的对象调用该类的相应方法。

如果您需要上述步骤的进一步帮助,请在评论中告诉我。

答案 1 :(得分:0)

为了使其易于维护,所有4个类都应实现一个公共接口。在此示例中,Runnable,其中run()方法是类入口点。在此示例中,我只有2个类,但是可以通过向runnables数组中添加元素来扩展它:

import java.util.Scanner;
import java.util.stream.IntStream;

public class Menu {

    public static void main(String[] args) {
        Runnable [] runnables = { new M1(), new M2() };
        IntStream.range(0, runnables.length)
                .forEach(i -> System.out.println(i + " " + runnables[i].getClass().getSimpleName()));
        Scanner scanner = new Scanner(System.in);
        int choice = scanner.nextInt();
        if (choice >=0 && choice < runnables.length) {
            System.out.println("Your choice: " + runnables[choice].getClass().getSimpleName());
            runnables[choice].run();
        }
    }

    public static class M1 implements Runnable {
        @Override
        public void run() {
            System.out.println("I choose to run M1");
        }
    }

    public static class M2 implements Runnable {
        @Override
        public void run() {
            System.out.println("M2 was chosen this time...");
        }
    }
}

示例输出:

0 M1
1 M2
0
Your choice: M1
I choose to run M1

答案 2 :(得分:-1)

首先,您不应该运行类,而应该使用方法。在我的示例中,我有3个类,每个类中的方法均为“ doSth”:

Scanner scanner = new Scanner(System.in); 
String input = scanner.next();/*Get what the User types*/
switch(input){
  case '1':
    Class1 c1 = new Class1();
    c1.doSth();
    break;
  case '2':
    Class2 c2 = new Class2();
    c2.doSth();
    break;
  case '3':
    Class3 c3 = new Class3();
    c3.doSth();
  default:
    System.Out.println('This Choice doesn't exist!');
    break;
}