【发布时间】:2018-01-17 21:43:14
【问题描述】:
我目前正在学习 java 和 oop。 当我必须根据条件实例化一个新对象时,我遇到了问题。每个对象都具有相同的类型。 根据条件,我想传递我的对象 playerAnimal 和 animalSauvage 以便让它们战斗。 (有点像玩家遇到野蛮的口袋妖怪)。
switch (animalChosen) {
case "Chien":
Animaux playerChien = new Chien(animalName);
playerChien.displayStat();
break;
case "Chat":
Animaux playerChat = new Chat(animalName);
playerChat.displayStat();
break;
case "Furet":
Animaux playerFuret = new Furet(animalName);
playerFuret.displayStat();
break;
default
break;
}
switch (randAnimalSauvage()) {
case "Chien":
Animaux chienSauvage = new Chien();
chienSauvage.displayStat();
break;
case "Chat":
Animaux chatSauvage = new Chat();
chatSauvage.displayStat();
break;
case "Furet":
Animaux furetSauvage = new Furet();
furetSauvage.displayStat();
break;
default:
break;
}
Fight letsFight = new Fight(Animaux playerAnimal, Animaux animalSauvage);
letsFight.battle(Animaux playerAnimal, Animaux animalSauvage);
PS:我是法国人,不要介意变量名的含义;)
提前致谢
【问题讨论】:
-
你遇到了什么问题?
-
你可以使用相同的变量名,
player&chat也许,初始化它,然后用它来创建 Flight 对象。 -
调用方法或构造函数时,不要传递参数的类型,只传递值,即
new Fight(playerAnimal, animalSauvage)和letsFight.battle(playerAnimal, animalSauvage);。
标签: java design-patterns instantiation