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:
publicclassRechteck{protecteddouble laenge;protecteddouble breite;publicRechteck(double l,double b){
laenge = l;
breite = b;}publicvoid laengesetzen (new l){
l =new l
}publicvoid breitesetzen (new b){
b =new b
}}
Dort zeigt er mit den Fehler an
Java:
publicvoid laengesetzen (new l){
l =new l
}publicvoid breitesetzen (new b){
b =new b
}
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:
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;
}
}
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,
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,
publicclassRechteck{protecteddouble laenge;protecteddouble breite;publicRechteck(double l,double b){// die variablen L und B hier existieren nur bis ende der {} ;)
laenge = l;
breite = b;}publicvoid laengesetzen (double lneu){// die variable l existiert nicht mehr..
l = lneu;// l existiert nur im konstruktor lneu existier nur bis ende {}}publicvoid breitesetzen (double bneu){
b = bneu;}}