所以在我的Java程序中,我有4个类。我想选择一个菜单,并根据用户的选择运行适当的类。这怎么会发生?
这是一个基于文本的记忆游戏。我想在CMD中运行它。
答案 0 :(得分:0)
您将再创建一个具有main()
方法的类。我们将其称为Runner
类。
在Runner类中,您需要从用户那里获取输入。使用Scanner
或BufferedReader
相同。
阅读用户输入后,您只需在用户输入上执行switch case
或if 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;
}