2013-07-15 1 views
0

У меня есть класс, показанный ниже;Вызов конструктора внутри перегруженной версии

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, String). Почему я не могу назвать фильм (String, String, String) внутри второго конструктора?

Есть ли способ сделать это?

ответ

1

Вы можете вызвать другие конструкторы с помощью this(a, b, c) для строк a, b, c. Вы пытаетесь вызвать его с помощью this.Film, который является ненадлежащим синтаксисом.

2

Вы можете назвать его как

this(filmName,filmImage,imdbRating) 

Но это должно первое заявление в конструкторе

2
  1. public void Film не определение конструктора, а метод. Удалить void
  2. Вы можете назвать конструкторами с this(...) и этот вызов должен быть самой первой строкой в ​​конструкторе
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; 
    } 
+0

+1. Вот что я собирался сказать. – Minja

0

это (FilmName, filmImage, imdbRating)

он должен первым оператором в конструкторе

Смежные вопросы