2016-07-22 4 views
-3

スーパーへの呼び出しはコンストラクタの最初のステートメントでなければなりませんか?

public class Gonderi {          
    int kullaniciId;           
    int gonderiId;           

    public void Gonderi(int kullaniciId, int gonderiId) { 
     super(); 
     this.kullaniciId = kullaniciId; 
     this.gonderiId = gonderiId; 
    } 
...

これは私のコードの一部です。コンパイラは、 "superへの呼び出しはコンストラクタの最初の文でなければならない"というエラーを返します。しかし、super()はすでにコンストラクターの最初のステートメントです。どうすればこの問題を解決できますか?ありがとう。

+5

これはコンストラクタではありません。 – tnw

+0

@tnwどのようなものがコンストラクタですか? –

+3

@ user6551379オールマイティなGoogleに尋ねてください。これは、これまでのJavaの入門チュートリアルのほとんどすべてでカバーされています。あなたが研究を試みて自分自身を助けるために気にすることができないなら、あなたはこのことを学ぶのに非常に苦労するでしょう。 – tnw

答えて

3

コンストラクタは戻り値を持っていませんが、(void)それを持っている:

public void Gonderi(int kullaniciId, int gonderiId) { 

のでvoidを削除し、適切なコンストラクタを持っている:

public Gonderi(int kullaniciId, int gonderiId) { 

ような変更した後、それは法的になりますそこでsuper()に電話してください。

+0

それは働いて、ありがとう!しかし、 "void"、 "int"などのようなものを置かないと、関数やメソッドが "void"となることはありませんか? –

+1

答えを出す前に、重複を見つけるために最小限の努力をしてください。この質問は毎日尋ねられます。重複して閉じるか、または誤って(誤って書かれた)ものとして投票してください。 – Savior

+1

'void'はメソッドでのみ使用されません。コンストラクタには戻り値を許可しない特定の構文があります。 –

2

voidを削除してください。上記のものはコンストラクタではありません。それは関数です。コンストラクタは次のようにする必要があります

public Gonderi(int kullaniciId, int gonderiId) { 
    super(); 
    this.kullaniciId = kullaniciId; 
    this.gonderiId = gonderiId; 
    } 
関連する問題