javaoo主方法混淆

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) {

所以我刚刚开始学习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) {
            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