Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
wie kann man z.B. folgenden Code debuggen? Der hat zwar keine Fehler i.d.S., möchte es aber trotzdem überprüfen können.
Java:
public class Wein {
private int alter;
private double grundpreis;
private double preisProFlasche;
public Wein() {
this(1, 10);
}
public Wein(int alter) {
this(alter, 10);
}
public Wein(double grundpreis) {
this(1, grundpreis);
}
public Wein(int alter, double grundpreis) {
if (alter > 0)
this.alter = alter;
else
this.alter = 1;
if (grundpreis > 9)
this.grundpreis = grundpreis;
else
this.grundpreis = 10;
}
public void preisBerechnen() {
preisProFlasche = alter * grundpreis;
}
public double getPreisProFlasche() {
preisBerechnen();
return preisProFlasche;
}
}
Also, über Debugging Konfiguration kann ich das entsprechende Projekt und die Hauptklasse auswählen bzw. eingeben. Dann kriege ich nur immer eine Fehlermeldung:
Fehler: Hauptmethode in Klasse projektname.Wein nicht gefunden. Definieren Sie die Hauptmethode als:
public static void main(String[] args):
oder eine JavaFX-Anwendung muss javafx.application.Application erweitern
Also der Debugger muss ja irgend etwas ausführen und das ist bei Java erst einmal per default die main Methode.
Statt aber eine eigene main Methode zu erstellen, kannst du Frameworks nutzen, die dann eine eigene Main Methode haben. Ein typisches solches Framework ist JUnit. Du hast dann sogenannte Unit Tests, die schreibst und gestartet wird dann sozusagen ein Test Ausführer, der dann die Unit Tests ausführt.
Und die Ausführung der Tests kann man dann auch debugger.
Die beiden untenstehenden Klassen hängen zusammen. Angenommen, ich setze den Breakpoint in Zeile 19 der Klasse Wein. Das Debuggen stoppt dann aber immer bei "Wein flasche1 = new Wein(10, 20.5);"?
"Debug für aktuellen Instruktionszeiger" müsste doch da stehen, wo ich den Breakpoint gesetzt habe, oder?
Java:
public class Wein {
private int alter;
private double grundpreis;
private double preisProFlasche;
public Wein() {
this(1, 10);
}
public Wein(int alter) {
this(alter, 10);
}
public Wein(double grundpreis) {
this(1, grundpreis);
}
public Wein(int alter, double grundpreis) {
if (alter > 0)
this.alter = alter;
else
this.alter = 1;
if (grundpreis > 9)
this.grundpreis = grundpreis;
else
this.grundpreis = 10;
}
public void preisBerechnen() {
preisProFlasche = alter * grundpreis;
}
public double getPreisProFlasche() {
preisBerechnen();
return preisProFlasche;
}
}
Code:
public class Getränke {
public static void main(String[] args) {
Wein flasche1 = new Wein(10, 20.5);
System.out.println(flasche1.getPreisProFlasche());
Wein flasche2 = new Wein(-10, 20.5);
System.out.println(flasche2.getPreisProFlasche());
}
}