javaoo主方法混淆
所以我刚刚开始学习java,现在来看这个例子:javaoo主方法混淆,java,Java,所以我刚刚开始学习java,现在来看这个例子: class Dog { int size; String breed; String name; void bark() { System.out.println("Ruff! Ruff!"); } } // class Dog class DogTestDrive { public static void main(String[] args) {
class Dog {
int size;
String breed;
String name;
void bark() {
System.out.println("Ruff! Ruff!");
}
} // class Dog
class DogTestDrive {
public static void main(String[] args) {
Dog d = new Dog();
d.size = 40;
d.bark();
} // end main
} // class DogTestDrive
当我尝试运行它时,我得到以下错误:错误:在类Dog中找不到Main方法,请将Main方法定义为:
公共静态void main(字符串[]args)
我看不出问题出在哪里?这应该只适用于一种主要方法。您的主要方法在类
DogTestDrive
中,而不是类Dog
Tim B的意思是您必须运行DogTestDrive
,而不是Dog
。这样就使用了DogTestDrive
中的main方法,而不需要Dog
中的main方法。启动java时,告诉它要执行哪个类。Java在指定的类中找到main()
方法并调用它
您需要告诉java执行DogTestDrive
请注意,如果您在IDE中执行此操作,只需右键单击项目中的DogTestDrive
,并发出“Run”命令即可
java运行的类必须是一个“顶级”类-该类在其自己的文件中声明,名称与该类相同,但添加了
.java
(不是在另一个类的文件中声明的类)。您的代码运行正常,但请确保该文件名为“DogTestDrive.java”,因为您必须运行它。此外,您应该将类DogTestDrive声明为public
(不需要)
在Java中,扩展名为
.Java
的每个文件都有一个与文件同名的公共类(例如Dog.Java
有public class Dog{…
)。一个文件可以有多个类,但只能有一个类是public
当您运行名为
Dog.java
的文件时,java将尝试在该文件中执行Dog.main
。如果要运行DogTestDrive.main
,则必须将DogTestDrive
放入DogTestDrive.java
作为类Dog{…
,可以放在同一个文件中,也可以放在它自己的Dog.java文件中,后者是首选的,因为这样文件之外的类就可以访问它。你必须执行DogTestDrive
java DogTestDrive
-而不是java Dog
。谢谢大家的帮助,它现在可以运行了,我有点困惑d因为我试图在没有ide的情况下学习所有东西,只有记事本++和cmd。这帮助我更好地理解事物。如果他在同一个文件中有这些,我相信文件必须命名DogTestDrive@svenoaks说得好。我没想到……我会在回答中记下。谢谢你的帮助,这对我帮助很大。考虑到这个about同一个文件,是的,两个类都在同一个文件中,但文件名不必与它所包含的类的名称相同。我尝试将文件命名为example.java,它编译起来没有问题。另外,它为每个类生成两个新文件,当我运行DogTestDrive时,它运行正常。我不知道这是否是您编写时的想法“如果他在同一个文件中有这些呢”。如果类Dog
是公共的,而不是在自己的编译单元中,则会导致编译失败。此外,在这种情况下,不要求类Dog
是公共的。天哪,你是对的,我想建议在声明类时使用public。
class Dog {
int size;
String breed;
String name;
void bark() {
System.out.println("Ruff! Ruff!");
}
} // class Dog
public class DogTestDrive {
public static void main(String[] args) {
Dog d = new Dog();
d.size = 40;
d.bark();
} // end main
} // class DogTestDrive