我的课程如下所示;
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);
}
}
请注意构造函数的第二个定义电影(字符串,字符串,字符串,字符串)。为什么我无法在第二个构造函数中调用 Film(String,String,String)?
有没有办法做到这一点?
答案 0 :(得分:2)
您可以将其称为
this(filmName,filmImage,imdbRating)
但它应该首先在构造函数
中声明答案 1 :(得分:2)
public void Film
不是构造函数定义,而是方法。删除void
this(...)
调用构造函数,此调用应该是构造函数中的第一行答案 2 :(得分:2)
应按此顺序,然后您只在更通用的版本中实现构造函数。
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;
}
答案 3 :(得分:1)
您可以使用this(a, b, c)
为字符串a,b,c调用其他构造函数。你试图用this.Film
来调用它,这是不正确的语法。
答案 4 :(得分:0)
此(filmName,filmImage,imdbRating)
它应该首先在构造函数
中声明