未找到Java主类(无错误)
问题描述:
这里是我的源代码,我将我的项目命名为Animal,但是当我运行它时。定位我的主类时出错。请帮帮我。我仍然是初学者,我很乐意学习更多。未找到Java主类(无错误)
package animal;
public class Animal {
public Animal() {
System.out.println("A new animal has been created!");
}
public void sleep() {
System.out.println("An animal sleeps...");
}
public void eat() {
System.out.println("An animal eats...");
}
}
public class Bird extends Animal {
public Bird() {
super();
System.out.println("A new bird has been created!");
}
@Override
public void sleep() {
System.out.println("A bird sleeps...");
}
@Override
public void eat() {
System.out.println("A bird eats...");
}
}
public class Dog extends Animal {
public Dog() {
super();
System.out.println("A new dog has been created!");
}
@Override
public void sleep() {
System.out.println("A dog sleeps...");
}
@Override
public void eat() {
System.out.println("A dog eats...");
}
}
public class MainClass {
public static void main(String[] args) {
Animal animal = new Animal();
Bird bird = new Bird();
Dog dog = new Dog();
System.out.println();
animal.sleep();
animal.eat();
bird.sleep();
bird.eat();
dog.sleep();
dog.eat();
}
}
请帮我这个。
答
随着研究你的代码,发现错误只能在类的修饰符(公共)你声明。
“你只能有一个公共类修饰符在Java源文件”
我们可以在这些限制单个源文件中声明一个类:
- 每一个源文件应包含只有一个公共类,并且该公共类的名称 应该类似于源文件的名称 文件。
- 如果您在源文件中声明主要方法,则主要 应该位于该公共类中。
- 如果源文件中没有公共类,那么主要方法 可以位于任何类中,我们可以给出源文件的任何名称。
所以.. 您的代码..
class Animal {
public Animal() {
System.out.println("A new animal has been created!");
}
public void sleep() {
System.out.println("An animal sleeps...");
}
public void eat() {
System.out.println("An animal eats..."); }
}
class Bird extends Animal {
public Bird() {
super();
System.out.println("A new bird has been created!");
}
@Override
public void sleep() {
System.out.println("A bird sleeps...");
}
@Override
public void eat() {
System.out.println("A bird eats...");
}
}
class Dog extends Animal {
public Dog() {
super();
System.out.println("A new dog has been created!");
}
@Override
public void sleep() {
System.out.println("A dog sleeps...");
}
@Override
public void eat() {
System.out.println("A dog eats...");
}
}
public class MainClass {
public static void main(String[] args) {
Animal animal = new Animal();
Bird bird = new Bird();
Dog dog = new Dog();
System.out.println();
animal.sleep();
animal.eat();
bird.sleep();
bird.eat();
dog.sleep();
dog.eat();}
}
+0
我现在明白了。我只是将主类更改为我的项目名称,并且工作正常。 – sawpaw300
答
理想情况下,您应该在同一个目录中将Bird,Dog和Animal放在自己的文件中。然后你创建一个更多的类,一个具有主函数的测试者类,并且由于它与Bird,Dog和Animal位于同一个目录中,所以它可以访问它们,并且可以执行你的主类所做的事情。如果你需要把它全部放在一个文件中,那么每个类头文件只需要class Bird {
等等。然后将文件重命名为MainClass.java,它会运行。
答
请参考:Can a java file have more than one class?
简称:只能有每个java文件一个公共的*类。
所以,你应该修改你的代码:
package Animal;
class Animal {
public Animal() {
System.out.println("A new animal has been created!");
}
public void sleep() {
System.out.println("An animal sleeps...");
}
public void eat() {
System.out.println("An animal eats...");
}
}
class Bird extends Animal {
public Bird() {
super();
System.out.println("A new bird has been created!");
}
等等...
请张贴充分和完整的错误消息。而且你的问题令人困惑,因为你有一个错误,但你说它没有错误。它不能没有错误,否则你不会在这里问为什么它不起作用。 –
另外,你的代码格式不好,特别是你的代码缩进。了解代码格式不是为了让代码“看起来不错”,而是规则可以帮助您快速查看哪些代码属于哪个范围,这有助于您调试和理解代码。为了您*的利益,您需要努力进行格式化,以便更轻松地调试问题以及*我们的*,这样我们可以更轻松地了解您的代码并为您提供帮助。这不是一个微不足道的要求。 –
你如何运行你的代码? – Tom