我有一个关于java面向对象编程的问题(初学者)
我试图修改类animal的第一个构造函数,以及给定程序的make_speak方法,这样它就会打印出这样的内容:“你好,我是一只名叫Ludwig的猫。我吃了 必须修改类animal的第一个构造函数,以便可以通过以下方式创建动物对象:我有一个关于java面向对象编程的问题(初学者),java,Java,我试图修改类animal的第一个构造函数,以及给定程序的make_speak方法,这样它就会打印出这样的内容:“你好,我是一只名叫Ludwig的猫。我吃了 必须修改类animal的第一个构造函数,以便可以通过以下方式创建动物对象: Animal named_cat = new Animal( "cat", "Ludwig" ) ; 我的问题:修改类animal(或其他部分)的第一个构造函数有什么不对。谢谢大家! 这是我修改过的程序: class Animal { String spe
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() ;
}
}
构造函数中需要有2个参数,而不是1个
public Animal( String given_species_name, String given_animal_name) {
species_name = given_species_name;
animal_name = given_animal_name;
stomach_contents = "";
}
但是,由于您似乎也在使用单参数构造函数创建对象,因此不要用此构造函数替换provious构造函数。相反,请添加另一个具有2个参数的构造函数。您必须将参数添加到构造函数中:
public Animal( String given_species_name, String given_animal_name ) {
species_name = given_species_name;
animal_name = given_animal_name;
stomach_contents = "" ;
}
@卡什韦,不客气。请点击R.J答案旁边的绿色复选标记接受他的答案:)我做错了什么?我在你死后八秒钟写了同样的信;)@嗯,我实际上告诉他接受你的回答;)您的速度更快,并指出要使用单独的构造函数。