2017-02-11 7 views
-3

私のソースコードは私が私のプロジェクトを動物として指定しましたが、実行しました。私のMAIN CLASSを見つけるのにエラーがあります。私を助けてください。私はまだ初心者であり、私はもっと多くを学ぶために開いています。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(); 
    } 
} 

私にこれを手伝ってください。

+3

完全かつ完全なエラーメッセージを投稿してください。そしてあなたの質問はあなたがエラーを持っているという点で混乱しています。それはエラーがないことはできません、それ以外の場合、なぜそれが動作していないか尋ねることはありません。 –

+0

また、あなたのコードの書式設定は良くありません。特にあなたのコードインデント。コードの書式設定はコードを「見栄えが良い」ものにするのではなく、コードがどのスコープに属しているかを素早く確認するのに役立ちます。 *あなたの利益のためにフォーマットを整え、問題をより簡単にデバッグできるように、*私たち*のためにあなたのコードを理解しやすくするために努力したいと思うでしょう。これは簡単な要求ではありません。 –

+0

どのようにコードを実行しますか? – Tom

答えて

0

としては、あなたが宣言しただけでクラス修飾(パブリック)にエラーを検出しました、あなたのコードを検討しました。

「を使用すると、Javaソース・ファイルに一つだけのパブリッククラス修飾子を持つことができる」

私たちは、これらの制約を持つ単一のソース・ファイルに1つのクラスを宣言することができます。各ソースファイルが含まれている必要があり

  1. 1つのパブリッククラスとそのパブリッククラスの という名前は、ソース ファイルの名前に似ている必要があります。
  2. ソースファイルでメインメソッドを宣言している場合は、メインの がそのパブリッククラスに属している必要があります。
  3. ソースファイルにパブリッククラスが存在しない場合、メインメソッド は任意のクラスにあり、ソースファイルに任意の名前を付けることができます。

..だから あなたのコードは..です

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

0

理想的には、Bird、Dog、Animalを同じディレクトリにある独自のファイルに配置するのが理想的です。次に、主な機能を持つもう1つのクラス、テスタークラスを作成します。これはBird、Dog、Animalと同じディレクトリにあるため、これらのクラスにアクセスしてメインクラスの機能を実行できます。すべてのファイルを1つのファイルに保存する必要がある場合は、すべてのクラスヘッダーをclass Bird {などにしてください。ファイルの名前をMainClass.javaに変更すると、そのファイルが実行されます。

0

参照してください:略してCan a java file have more than one class?

を:だけの.javaファイルごとに1つのパブリックトップレベルのクラスが存在することができます。

だから、あなたのコードを編集する必要があります。

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!"); 
    } 

のように...

関連する問題