簡體   English   中英

未找到 Java 主類(無錯誤)

[英]Java main class not found(error free)

這是我的源代碼,我將我的項目命名為 Animal 但是當我運行它時。 定位我的 MAIN CLASS 時出錯。 請幫我。 我仍然是一個初學者,我願意學習更多。

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();
    }
}

請幫我解決一下這個。

理想情況下,您應該將 Bird、Dog 和 Animal 放在同一目錄下它們自己的文件中。 然后你再創建一個類,一個測試類,它有一個 main 函數,因為它與 Bird、Dog 和 Animal 位於同一目錄中,所以它可以訪問它們,你可以做你的主類現在所做的事情。 如果您需要將所有內容都放在一個文件中,請將每個類標題設為class Bird {等。然后將文件重命名為 MainClass.java 並運行。

請參考: 一個java文件可以有多個類嗎?

簡而言之:每個 .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!");
    }

等等 ...

在研究您的代碼時,僅在您聲明的類修飾符(public) 上發現錯誤。

“一個java源文件中只能有一個公共類修飾符”

我們可以使用以下約束在單個源文件中聲明一個類:

  1. 每個源文件應僅包含一個公共類,並且該公共類的名稱應與源文件的名稱相似。
  2. 如果您在源文件中聲明一個 main 方法,那么 main 應該位於該公共類中。
  3. 如果源文件中沒有公共類,那么 main 方法可以位於任何類中,我們可以為源文件指定任何名稱。

所以..你的代碼是..

   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();}
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM