Как присвоить объекту класса значение - PullRequest
0 голосов
/ 26 мая 2018

вот что я пытаюсь сделать;Пользователь собирается ввести целое число 1 или 2. В зависимости от номера он будет вызывать назначенный объект из класса.Пример следующим образом:

Hero spiderman = new Hero();

Villain venom = new Villain();

int chosen;

Scanner sc = new Scanner(System.in);

System.out.println("Pick one character by number either 1 or 2");

int input = sc.nextInt();

    switch (input) {

    case 1:
        chosen = spiderman;
        System.out.println("You picked Spiderman");
    case 2:
        chosen = venom;
        System.out.println("You picked Venom");
    }

    chosen.fight();
    chosen.block();

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

Заранее большое спасибо.

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

Hero и Villain равны Objects, поэтому вы не можете присвоить его int.Я бы сделал класс (возможно, абстрактный) Character, который был бы расширен вашими двумя классами, упомянутыми выше.Как я вижу, у обоих ваших классов есть методы fight() и block(), поэтому с помощью полиморфизма вы можете сделать Character character = new Spiderman(); или Character character = new Villain();, а затем вызвать character.fight(); и character.block();

Character character;
int chosen;
Scanner sc = new Scanner(System.in);
System.out.println("Pick one character by number either 1 or 2");
int input = sc.nextInt();

switch (input) {

    case 1:
        character = new Spiderman();
        System.out.println("You picked Spiderman");
    case 2:
        character = new Venom();
        System.out.println("You picked Venom");
    }

character.fight();
character.block();

и don 'забыть о

public class Hero extends Character
public class Villain extends Character
0 голосов
/ 26 мая 2018

Тип данных, который вы указали для selected , является int.Вы можете создать родительский класс для классов Hero и Villain и расширить эти два класса из родительского класса.А для типа данных , выбранного , вы можете указать имя родительского класса в качестве типа данных .Пожалуйста, поправьте меня, если я ошибаюсь!

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