Я пытаюсь написать игру на Java с классом Player
, который имеет 2 подкласса: HumanPlayer
и ComputerPlayer
. Я хочу разрешить пользователю выбирать, какой игрок играть против, и как только он выбран - создать соответствующий объект и сыграть.Работа с областью объекта
Поскольку объект создается в инструкции if, компилятор не позволяет выполнять какие-либо операции вне области if. В других случаях я хотел бы создать объект в пределах области видимости класса, но в данном случае я не могу знать заранее, какой объект для создания (человек/компьютер)
Вот код для иллюстрации:
public class Player {
private String name;
public String getName(){
return name;
}
}
public class HumanPlayer extends Player {
public void play(){
System.out.println("Human playing");
}
}
public class ComputerPlayer extends Player {
public void play(){
System.out.println("Computer playing");
}
}
import java.util.Scanner;
public class PlayerDriver {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Please type 1 for human, 2 for computer");
int selection = in.nextInt();
if (selection==1){
HumanPlayer player = new HumanPlayer();
} else if (selection==2){
ComputerPlayer player = new ComputerPlayer();
} else {
throw new IllegalArgumentException("invalid answer");
}
Player.play(); //can't do that
}
}
Отлично! Спасибо за быстрый ответ – user2314782