Меню выбора, выбор от пользователя в Java - PullRequest
0 голосов
/ 22 ноября 2018

Так что в моей программе на Java у меня есть 4 класса.Я хочу сделать выбор меню и в зависимости от выбора пользователя запустить соответствующий класс.Как это может произойти?

Это текстовая игра памяти.Я хочу запустить его в CMD.

Ответы [ 3 ]

0 голосов
/ 22 ноября 2018

Вы создадите еще один класс, который будет иметь метод main().Давайте назовем это Runner классом.

В классе бегуна вам нужно будет принять участие от пользователя.Используйте Scanner или BufferedReader для того же.

После прочтения ввода пользователя вы можете просто сделать switch case или if else для ввода пользователя, чтобы создать экземпляр объекта для выбранного класса.После создания экземпляра вызовите соответствующий метод этого класса, используя экземпляр объекта.

Дайте мне знать в комментариях, если вам нужна дополнительная помощь с вышеуказанными шагами.

0 голосов
/ 22 ноября 2018

Чтобы сделать его легко обслуживаемым, все 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
0 голосов
/ 22 ноября 2018

Прежде всего, вы не должны запускать классы, а использовать методы.В моем примере у меня есть 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...