Java 在重载版本内调用构造函数
我的课程如下所示Java 在重载版本内调用构造函数,java,constructor,overloading,Java,Constructor,Overloading,我的课程如下所示 public class Film { public String filmName; public String filmImage; public String imdbRating; public String description; public Film(){ super(); } public void Film(String filmName,String filmIma
public class Film {
public String filmName;
public String filmImage;
public String imdbRating;
public String description;
public Film(){
super();
}
public void Film(String filmName,String filmImage,String imdbRating){
this.filmName=filmName;
this.filmImage=filmImage;
this.imdbRating=imdbRating;
}
public Film(String filmName,String filmImage,String imdbRating,String description){
this.description=description;
//I want call the other one, because I don't want to repeat
this.Film(filmName,filmImage,imdbRating);
}
}
请注意字符串的第二个定义,字符串,字符串,字符串。为什么我不能在第二个构造函数中调用FilmString,String,String
有没有办法做到这一点?你可以用这个a,b,c来调用其他构造函数来表示字符串a,b,c。您试图使用此.Film来调用它,这是不正确的语法。您可以将其称为
this(filmName,filmImage,imdbRating)
但它应该是构造函数中的第一个语句
公共无效电影不是一个构造器定义,而是一种方法。清除空隙
你可以用这个调用构造函数。。。这个调用应该是构造函数的第一行
应该按照这个顺序,那么您只能在更通用的版本中实现构造函数
public Film(){
this(null,null,null,null);
}
public Film(String filmName,String filmImage,String imdbRating){
this(filmName,filmImage,imdbRating,null);
}
public Film(String filmName,String filmImage,String imdbRating,String description){
this.filmName=filmName;
this.filmImage=filmImage;
this.imdbRating=imdbRating;
this.description=description;
}
此影片名称、影片图像、imdbRating
它应该是构造函数中的第一个语句