0

クラス animal の最初のコンストラクターと、指定されたプログラムの make_speak メソッドを変更して、次のように出力しようとしています:「こんにちは、私はルートヴィヒという猫です。食べました: ...」

クラス animal の最初のコンストラクターは、次のように記述して animal オブジェクトを作成できるように変更する必要があります。

Animal named_cat = new Animal( "cat", "Ludwig" ) ;

私の質問 : クラス animal (または他の部分) の最初のコンストラクターを変更する際に間違っているのは何ですか。ありがとう!

ここに私の変更を加えたプログラムがあります:

class  Animal
{
   String  species_name ;
   String  stomach_contents ;

 \\ here I added the String animal_name

   String  animal_name;




   public Animal( String  given_species_name ) 
   {

      species_name      =  given_species_name;
      animal_name       =  given_animal_name;
      stomach_contents  =  "" ;           

   }


 public Animal( Animal  another_animal )
   {
      species_name      =  another_animal.species_name ;
      stomach_contents  =  another_animal.stomach_contents ;

   }



   public void feed( String  food_for_this_animal )
   {
      stomach_contents  =  
      stomach_contents  +  food_for_this_animal  +  ", "  ;
   }


   public void make_speak()
   {
      System.out.print( "\n Hello, I am a " + species_name     +    "called  " + animal_name + "."
                      + "\n I have eaten: " + stomach_contents + "\n" ) ;

   }


   public void make_stomach_empty( )
    {

       stomach_contents  =  "" ;

    }        

}

class  Animals
{
   public static void main( String[] not_in_use )
   {
     Animal  cat_object  =  new Animal( "cat") ; 
     Animal named_cat = new Animal( "cat", "Ludwig" ) ;
     Animal  dog_object  =  new Animal( "vegetarian dog" ) ;




      cat_object.feed( "chicken" ) ;
      cat_object.make_speak() ;
      cat_object.make_stomach_empty();

      dog_object.feed( "salad");
      dog_object.make_speak();
      dog_object.make_stomach_empty();


      Animal  another_cat  =  new Animal( cat_object ) ;

      another_cat.feed( "milk" ) ;

      cat_object.make_speak() ;
      dog_object.make_speak() ;
      another_cat.make_speak() ;

   }
}
4

2 に答える 2

0

コンストラクターには、1 つではなく 2 つの引数が必要です。

public Animal( String  given_species_name, String given_animal_name) {
    species_name = given_species_name;
    animal_name = given_animal_name;
    stomach_contents = "";           
}

ただし、単一パラメーターのコンストラクターを使用してオブジェクトを作成しているようにも見えるため、以前のコンストラクターをこれに置き換えないでください。代わりに、2 つのパラメーターを持つ別のコンストラクターを追加します。

于 2013-11-02T12:12:54.130 に答える
0

コンストラクターにパラメーターを追加する必要があります。

public Animal( String  given_species_name, String given_animal_name ) {
  species_name      =  given_species_name;
  animal_name       =  given_animal_name;
  stomach_contents  =  "" ;           
}
于 2013-11-02T12:12:58.963 に答える