因此,在我的代码中,我有打印语句,其中包含不同的类的选择,然后用户键入与他们想要成为的任何类相对应的数字。我为我拥有的每个类都有类,如Knight、Cyborg、Bandit和JohnCena,每个类都是不同的类,在这些类中都有不同的统计数据。我想做的是让用户自动以骑士(银河海军陆战队)的身份开始,然后以某种方式将数据类型更改为用户选择的任何特定类别。我有一个名为user的变量,它被声明为类型Knight,我试图将类型更改为用户选择的特定类,但我不知道如何做到这一点。。。
以下是我的代码链接:https://i.stack.imgur.com/PVRJA.jpg
在这种情况下,使用开关案例可能会有所帮助。
Scanner chooseclass=new Scanner(System.in);
int classchoice=chooseclass.nextInt();
switch(classchoice)
{
case 1:
//your code to convert the class to Bandit
break;
case 2:
//your code to convert the class to Galactic Marine
break;
case 3:
//your code to convert the class to Cyborg
break;
case 4:
//your code to convert the class to John Cena
break;
default:
System.out.println("Please enter a valid choice"):
}
我认为只能有一个类来定义作业类。
统计信息是字符类的字段成员变量。
public class Job {
public String jobName;
public int strength;
public int speed;
...
}
然后,对于用户的选择,统计值是可变的。
例如:
knight -> jobName: knight; strength: 12; speed: 5; etc...
bandit -> jobName: bandit; strength: 7; speed: 11; etc...
代码类似于:
int classChoice = chooseclass.nextInt();
Job job = new Job();
switch (classChoice) {
case 0:
job.jobName = "knight";
job.strength = 12;
job.speed = 5;
...
break;
case 1:
job.jobName = "bandit";
job.strength = 7;
job.speed = 11;
...
break;
...
}
攻击时,例如:
public void attack() {
switch (jobName) {
case "knight":
System.out.println("You slash it with sword.");
break;
case "bandit":
System.out.println("You throw a dagger.");
break;
...
}
}