Java OO主要方法混乱

时间:2013-12-26 00:03:50

标签: 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) {
            Dog d = new Dog();
            d.size = 40;
            d.bark();
        } // end main
} // class DogTestDrive

当我尝试运行它时,我收到以下错误:错误:在类Dog中找不到主方法,请将main方法定义为:    public static void main(String [] args)

我没看到问题出在哪里?这应该只适用于一个主要的方法。

5 个答案:

答案 0 :(得分:3)

当你启动java时,你告诉它要执行哪个类。 Java在指定的类中找到main()方法并调用它。

您需要告诉java执行DogTestDrive

请注意,如果您在IDE中执行此操作,只需右键单击项目中的DogTestDrive并谴责“运行”即可。


类java运行必须是一个“顶级”类 - 它是在与自己同名的文件中声明的类,但添加了.java(不是在另一个类中声明的类)文件)。

答案 1 :(得分:1)

您的主要方法是在课程DogTestDrive而不是课程Dog

答案 2 :(得分:0)

Tim B的含义是您必须运行DogTestDrive而不是Dog。这样就可以使用DogTestDrive中的主要方法,并且不需要Dog中的主要方法。

答案 3 :(得分:0)

在Java中,每个扩展名为.java的文件都有一个与该文件同名的公共类(例如Dog.java具有public class Dog {...)。一个文件可以有多个类,但只有一个可以是public

当您运行名为Dog.java的文件时,Java将尝试在文件中执行Dog.main。如果您希望DogTestDrive.main运行,则必须将DogTestDrive放入DogTestDrive.java至于class Dog {...,可以放在同一个文件中,也可以放在自己的Dog.java文件中,后者是首选,因为然后文件外的类将能够访问它。

答案 4 :(得分:-1)

您的代码运行正确,但要确保该文件名为“DogTestDrive.java”,因为您必须运行它。此外,您应该将DogTestDrive类声明为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