BlueJ Fehlermeldung - Illegal Start of Type

PheeNoM

Mitglied
Hallo Leute.
Ich muss ein bisschen für Informatik in der Schule lernen, stell mich aber wohl ganz schön dumm an.

Meine Frage ist, wo ist hier bitte der Fehler, gesagt wird mit "Illegal Start of Type"

Java:
public class Rechteck{

    protected double laenge;
    protected double breite;
    
    public Rechteck (double l, double b){
    laenge = l;
    breite = b;
}
    public void laengesetzen (new l){
        l = new l
    }
    
    public void breitesetzen (new b){
        b = new b
    }
}

Dort zeigt er mit den Fehler an

Java:
public void laengesetzen (new l){
        l = new l
    }
    
    public void breitesetzen (new b){
        b = new b
    }

Wie ist er zu beheben?


Danke Euch


PheeNoM
 
das new muss aus dem argument sowie der zuweisung entfernt werden, sowie ein gültiger datentyp fur das argument (double) angegeben werden
 
Java:
public double laengesetzen (l){
        l = l
    }
    
    public double breitesetzen (b){
        b = b
    }

macht doch keinen sinn?
 
das ganze muss/könnte so aussehen:
Java:
public class Rechteck{
 
    protected double laenge;
    protected double breite;
    
    public Rechteck (double l, double b){
    laenge = l;
    breite = b;
}
    public void laengesetzen (double lneu){
        l = lneu
    }
    
    public void breitesetzen (double bneu){
        b = bneu
    }
}

bei Methoden musst du ja immer in den Klammer die variablen angeben die du für die Methode benötigst, also immer erst die den type der variable(double,String,int...) und dann den namen mit dem du daruf zugreifen kannst: ( 1.Type 1.variablenname, 2.type 2.variablenname,...)
z.B. eben:
Java:
void test(double doubleneu)
{}
 
Zuletzt bearbeitet:
Auch nicht, er verlangt 2 mal ; hinter bneu, lneu

dann hab ich das gemacht

Java:
public class Rechteck{
 
    protected double laenge;
    protected double breite;
    
    public Rechteck (double l, double b){
    laenge = l;
    breite = b;
}
    public void laengesetzen (double lneu){
        l = lneu;
    }
    
    public void breitesetzen (double bneu){
        b = bneu;
    }
}

und er sagt

cannot find symbol - variable l
 
wenn man es richtig macht, macht es einen sinn 😉

Code:
public double laengeSetzen(double l){
     this.l = l;
}
public douible breiteSetzen(double b){
     this.b = b;
}

der fehler von dir ist dass bei gleichnamigen parametern in methoden und felder bezeichnungen das prinzip der überschattung auftritt..
das (double l) l überschattet dein feld l (objekt variable)..
deshalb musst du die zuweisung über this.l = l machen.. this sagt dem compiler this.l ist die object variable nicht die parameter variable der methode..

oder du verwendest andere namen zb:
Code:
public class test{
     double laenge;
     double breite;
     public void setLaenge(double l){
          laenge = l;
     }
     public void setBreite(double b){
          breite = b;
     }
}

da brauchst du kein "this"
 
schuldigung:

Java:
public class Rechteck{
 
    protected double laenge;
    protected double breite;
    
    public Rechteck (double l, double b){
    laenge = l;
    breite = b;
}
    public void laengesetzen (double lneu){
        laenge = lneu;
    }
    
    public void breitesetzen (double bneu){
        breite = bneu;
    }
}

il und b kannte er natürlich daunten nicht, deshalb muss den beiden in der ganzen Klasse bekannten Variablen laenge und breite jeweils der wert zugewiesen werden,
 
schuldigung:

Java:
public class Rechteck{
 
    protected double laenge;
    protected double breite;
    
    public Rechteck (double l, double b){
    laenge = l;
    breite = b;
}
    public void laengesetzen (double lneu){
        laenge = lneu;
    }
    
    public void breitesetzen (double bneu){
        breite = bneu;
    }
}

il und b kannte er natürlich daunten nicht, deshalb muss den beiden in der ganzen Klasse bekannten Variablen laenge und breite jeweils der wert zugewiesen werden,

super danke dir
 
Auch nicht, er verlangt 2 mal ; hinter bneu, lneu

dann hab ich das gemacht

Java:
public class Rechteck{
 
    protected double laenge;
    protected double breite;
    
    public Rechteck (double l, double b){  // die variablen L und B hier existieren nur bis ende der {} ;)
    laenge = l;
    breite = b;
}
    public void laengesetzen (double lneu){  // die variable l existiert nicht mehr..
 
        l = lneu;     // l existiert nur im konstruktor  lneu existier nur bis ende {}
    }
    
    public void breitesetzen (double bneu){
        b = bneu;
    }
}

und er sagt

cannot find symbol - variable l



du hast hier ein problem der lebensdauer einer v
 

Zurück
Oben