2016-07-22 15 views
-3
public class Gonderi {          
    int kullaniciId;           
    int gonderiId;           

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

...Aufruf von Super muss erste Anweisung im Konstruktor sein?

Dies ist ein Teil meines Codes. Compiler gibt einen Fehler als "Aufruf von Super muss erste Anweisung im Konstruktor sein". Aber super() ist bereits die erste Anweisung im Konstruktor. Wie kann ich dieses Problem lösen? Vielen Dank.

+5

Das ist kein Konstruktor. – tnw

+0

@tnw Welche Art von Dingen sind Konstrukteur? –

+3

@ user6551379 Fragen Sie einfach das allmächtige Google. Dies wird in praktisch jedem Einführungs-Tutorial für Java behandelt. Wenn Sie sich nicht die Mühe machen, etwas zu recherchieren und sich selbst zu helfen, wird es Ihnen sehr schwer fallen, dieses Zeug zu lernen. – tnw

Antwort

3

Konstrukteurs nicht Rückgabewert haben, aber Sie haben es (void):

public void Gonderi(int kullaniciId, int gonderiId) { 

So void entfernen und haben einen richtigen Konstruktor:

public Gonderi(int kullaniciId, int gonderiId) { 

Nach einer solchen Änderung wird es legal sein anrufen super() dort.

+0

es hat funktioniert, danke! Aber bedeutet das nicht, nichts wie "void", "int" usw. zu bedeuten, dass die Funktion oder Methode "void" ist? –

+1

Bitte versuchen Sie nur minimal, ein Duplikat zu finden, bevor Sie eine Antwort versuchen. Diese Frage wird täglich gestellt. Wählen Sie entweder, um als Duplikat zu schließen oder als Tippfehler (unbeabsichtigt geschrieben). – Savior

+1

Kein 'void' wird nur in Methoden verwendet, Konstruktoren haben eine spezifische Syntax, die keinen Rückgabewert zulässt. –

2

Entfernen Sie die void, die oben erwähnte ist kein Konstruktor. Es ist eine Funktion. Der Konstruktor sollte wie folgt sein:

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