Java BlueJ: Illegal Start of type bei if-Anweisung

...komplette Frage anzeigen

3 Antworten

public void EingabeGüterpreis (int Güterpreis) {}if (Güterpreis < 300){ ...

Das Ganze etwas aufgeteilt aus Sicht deines Compilers.

public void EingabeGüterpreis (int Güterpreis) { //Ab hier wird Methode definiert
} //Bis hier wurde Methode definiert.

 if (Güterpreis < 300){ ... //????????????????????

Übrigens zur Java-Namenskonvention:

Konstanten schreibt man in CAPSLOCK und mit Underscores

private static final int MY_CONSTANT=1;

Klassennamen schreibt man in UpperCase

public class MyClass{}

Methoden und Variablennamen in lowerCase

int myInt=1;

Diese Konvention ist nicht zwingend, aber wenn sich alle Programmierer daran halten, dann wüsstest du, wenn du so einen Code siehst:

frm.add(Mets.createPanel(FRAME_STATUS_1));

"Aha, frm ist eine lokale Variable, Mets ist eine Klasse und FRAME_STATUS_1 eine Konstante für createPanel()"

Wenn dann allerdings so ein Kontext kommt:

public class main(){

    Frame FRAME_STATUS_1=new Frame("lol");
    mets Mets=new mets();
    frm.add(Mets.createPanel(FRAME_STATUS_1));
}
class mets{

    Panel createPanel(Frame f){...}
}
class frm{

    static void add(Panel pnl){}
}

...dann lässt dich das an deinem Verstand, der Relativitätstheorie und der Farbe von Bananen zweifeln...

Antwort bewerten Vielen Dank für Deine Bewertung

als erstes: klassen werden erster buchstabe groß, rest klein geschrieben. methoden werden komplett klein geschreiben. 2) da ist ne klammer zu viel public void EingabeGüterpreis (int Güterpreis) {} wird zu public void EingabeGüterpreis (int Güterpreis) { und ganz am ende nach der else }-klammer noch eine zweite. übrigens wenn es ein public void ... ist dann hat sie kein return

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von pcProfie
09.12.2013, 20:09

also bitte so:

public class Rabatt { 
private double gueterpreis; 
private double kleinerRabatt = 0.02; 
private double großerRabatt = 0.05; 
private double preisgesamt;

public void eingabeGüterpreis (int Gueterpreis) {

    if (gueterpreis < 300)

    {
        double preisgesamt = gueterpreis - gueterpreis * kleinerRabatt;
    }

    else
    {
        double preisgesamt= gueterpreis- gueterpreis * großerRabatt;
    }
}

}

1
Kommentar von Destroxx
09.12.2013, 20:10

Danke für die Antwort, hab die Klammer weggenommen und jetzt funktioniert es. Aber warum werden Klassen und Methoden so geschrieben wie du sagtest, ist das zwingend?

0

Güterpreis existiert zum Zeitpunkt der Abfrage nicht mehr . entweder du hast die eine Klammer zu weit oben geschlossen oder du bist nicht darauf gekommen das es den güterpreis nicht mehr gibt

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?