如何克服Java中Println动物园中的错误



我已经检查了几篇有关打印方式的文章,但找不到可以解决我的问题的文章。因此,我需要在Java中创建一个带有一些动物的动物园,所以我做了几个步骤。我从主要阶级动物开始:

Animal.java

public class Animal {
    public static String name;
    public static String species;
    public static int age;
    Animal(){
    }
    public Animal(String name, String species, int age) {
        Animal.name=name;
        Animal.species=species;
        Animal.age=age;
    }


    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }
    private static void printInfo() {
        System.out.println("Name: " + name + ", Age:"+age +", Species: " + species);
        // TODO Auto-generated method stub
    }
}

比子类:

Elephant.java:
public class Elephant extends Animal {
    public Elephant() {
    }
    Elephant(String name, int age, String species) {
        super(name, species, age);

        // TODO Auto-generated constructor stub
    }
}

狮子java:

public class Lion extends Animal {

    public Lion() {
    }
        Lion(String name, int age, String species) {
            super(name, species, age);
        // TODO Auto-generated constructor stub
    }
}

panda.java:

public class Panda extends Animal {

    public Panda() {
    }
        Panda(String name, int age, String species) {
            super(name, species, age);
        // TODO Auto-generated constructor stub
    }
}

和子类的子类:儿童1。java

public class ElleElephantChild extends Elephant {
    public ElleElephantChild() {
    }
    ElleElephantChild(String name, int age, String species){
        Animal.name = "Elle";
        Animal.age=0;
        Animal.species=species;
        // TODO Auto-generated constructor stub
    }
}

child2.java:

public class SpotPandaChild extends Panda {
    public SpotPandaChild() {
    }
    SpotPandaChild(String name, int age, String species){
        Animal.name = "Spot";
        Animal.age=0;
        Animal.species=species;
        // TODO Auto-generated constructor stub
    }
}

所以我试图在动物类信息中打印出来:名称,物种和年龄。但是获取此错误:

Error: Main method not found in class Animal, please define the main method as:
   public static void main(String[] args)

我认为我缺少重点,有人可以帮忙吗?谢谢

这是我如何实现这样的事情的一个示例:

public class Animal {
public String name; //not static!Static means that one variable is shared among all instances of a class, which is not what you want here presumably
public String species;
public int age;
public Animal(String name, String species, int age) { //this is okay
    this.name=name;
    this.species=species;
    this.age=age;
}
public static void main(String[]args){
Animal thisAnimal = new Animal("Hungry Hippo", "Hippopotamus", 5);
//thisAnimal is an INSTANCE of the animal class, and will be created when you run the program. (whatever is in your main method is what gets run.) 
}
}

如果要创建扩展动物类的动物:

public class Panda extends Animal {

  public Panda(String name, int age, String species) {
        super(name, species, age);
    // TODO Auto-generated constructor stub
}

}然后,您不想创建一个熊猫班实例的熊猫对象,而不是创建Spotpandachild类,并称为Spotpandachild:前任。在您的主要方法中:

  Panda SpotPandaChild = new Panda("Spot", 0, "Pandaus Nonhumanus");

我希望这对您有所澄清!

谢谢大家的有用评论和反馈!我修复了它及其工作。

最新更新