【发布时间】:2018-09-22 22:35:49
【问题描述】:
我试图让用户在运行时从我的 virtualZoo.java 文件中选择一种动物。它可以编译,但是一旦用户输入一个选择,我就会收到一个错误,上面写着“错误的树类型”。下面是 virtualZoo.java、animal.java 和 dog.java 的代码。我在 switch 语句下创建了对象,因为我被指示使用这些对象,但不了解实现。
virtualZoo.java
import java.util.Scanner;
public class VirtualZoo{
public static void main(String[] args) {
Animal cat = new Animal("Cat", "Meow");
Animal dog = new Animal("Dog", "Woof");
Animal duck = new Animal("Duck", "Quak");
// create Scanner
Scanner input;
input = new Scanner(System.in);
double userInput;
System.out.println("Welcome to the Zoo");
System.out.println("Pick select an animal to visit");
System.out.println("=================================");
System.out.println("===========MAIN MENU=============");
System.out.println("=================================");
System.out.println("== 0) Cat ===================");
System.out.println("== 1) Dog ===================");
System.out.println("== 2) Duck ===================");
System.out.println("== -1) EXIT ===================");
System.out.println("=================================");
System.out.println();System.out.println();
System.out.println( "Input : ");
Scanner sc = new Scanner(System.in);
userInput = sc.nextInt();
switch (sc.nextInt()) {
case 0:
System.out.println(cat);
break;
case 1:
System.out.println(dog);
break;
case 2:
System.out.println(duck);
break;
case -1:
System.out.println("Your name is short length.");
break;
default:
break;
}
duck.speak();
dog.speak();
cat.speak();
}
}
animal.java(virtualZoo.java 中的动物类)
public class Animal {
private String animalSound;
private String animalType = "";
//set animal sound
public void setSound(String sound) { this.animalSound = sound; }
//get animal sound
public String getSound() { return animalSound; }
public void setType(String type) { this.animalType = type; }
//get animal type
public String getType() { return animalType; }
public Animal(String animalType, String animalSound)
{
this.animalSound = "";
this.animalType = animalType;
this.animalSound = animalSound;
}
public void speak()
{
System.out.println("The " + animalType + " says " + animalSound);
}
}
dog.java(Animal 类中的 Dog 类)
public class Dog extends Animal {
public Dog(String animalType, String animalSound) {
super(animalType, animalSound);
}
@Override
public void speak(){
System.out.println("This dog barks");
}
}
【问题讨论】:
-
你是怎么得到这个错误的?发布的代码对我来说很好
-
你学过枚举吗?如果是这样,我会将它们包括在我的答案中......
-
如果是这种情况,我可能需要重新启动我的 IDE。每次我编译并输入用户输入时,我都会收到错误的树错误
-
我还没学过枚举
-
更新代码现在似乎正在编译,但我必须输入两次用户输入才能获得任何结果。代码仍然没有产生预期的结果。我应该使用不同的语句吗?可能是 If/Then 而不是 switch。
标签: java class inheritance extends