我无法清除情况2和情况3第二行中的以下错误'('或'['。我编写的代码是newAnimal.displayInfo();。

我不确定为什么在情况2和3上会出现此错误,但在情况1上却没有。我不确定我在做什么错。任何帮助/指导将不胜感激。

代码如下所示:

package animalinfo;

import java.util.Scanner;

public class AnimalInfo
{

/**
 * @param args the command line arguments
 */

public static void main(String[] args)
{
    // TODO code application logic here
    Scanner input = new Scanner (System.in);
    Animal newAnimal;
    int quit = 4;
    while(-4 != quit);
    {
        System.out.println("\n1) Camel" +
                "\n2)Penguin" +
                "\n3) Tortoise" +
                "\n4) Exit Program.");
        System.out.print("Please select an amimalfrom the list.");

        int choice = input.nextInt();
        switch (choice)
    {
        case 1:
            newAnimal = new Camel();
            newAnimal.displayInfo();
            break;
        case 2:
            newAnimal = new Penguin
            newAnimal.displayInfo();
            break;
        case 3:
            newAnimal = new Tortoise
            newAnimal.displayInfo();
            break;

        case 4:
            System.out.println ("Thank you for making your selections.");
            break;
    }
    }
}
}

最佳答案

创建新对象后,似乎缺少括号。所以这:

newAnimal = new Penguin


应该变成这个:

newAnimal = new Penguin();


这是因为要将newAnimal设置为Penguin对象的新实例,并且要创建该新实例,必须调用Penguin类的constructor来创建该对象。

同样,如Jurko所述,您的while循环设置不正确。

while(-4 != quit);


您必须删除分号,否则循环将无限期地运行而不执行您在其下的代码。 while循环的正确语法是

while (-4 != quit) {
  // Code to repeat here
}

10-04 12:56