Dein Code sieht so weit schon einmal ganz gut aus.
Du hast bei den Methoden zur Berechnung nicht beachtet, dass diese einen Parameter, die 2. Zahl, übergeben bekommen sollen und für die 1.Zahl das bisherige Zwischenergebnis verwendet werden soll.
Daher würde ich vorschlagen, die Variablen zahl1 und zahl2 zu streichen und dafür eine Variable zwischenergebnis zu deklarieren die am Anfang mit 0.0 initialisiert ist.
private double zwischenergebnis = 0.0;
Und die Methoden für die Rechnungen entsprechend anzupassen:
public double add(double zahl2) {
zwischenergebnis = zwischenergebnis + zahl2;
return zwischenergebnis;
}
In der Methode löscheZwischenergebnis hat sich ein Fehler eingeschlichen, durch diesen kann die Klasse gar nicht kompilieren, es müsste lauten:
public double löscheZwischenergebnis () {
ergebnis = 0.0;
}
Vorher hast du einen Methodennamen aufgerufen und versucht diesem einen Wert zuzuweisen, das funktioniert nicht.
Konstanten werden in der Regel als Variablen mit einem static definiert:
public static double PI = 3.14; // Konstante PI
Diese kann jetzt mit:
Taschenrechner.PI
abgerufen werden.
In der div Methode fehlt noch die Bedingung, wenn Zahl2 = 0.0 ist nichts passieren soll, das kannst du mit einer if-Abfrage überprüfen:
public double div(double zahl2) {
// nur teilen, wenn zahl2 nicht 0.0 ist
if (zahl2 != 0.0) {
zwischenergebnis = zwischenergebnis / zahl2;
}
return zwischenergebnis;
}
Durch die if-Abfrage wird die Rechnung nun nur ausgeführt, wenn der Parameter zahl2 nicht 0.0 ist, sonst wird das Zwischenergebnis ohne Veränderung zurückgegeben.
Zusammenfassend würde ich also folgendes vorschlagen:
public class Taschenrechner {
private double zwischenergebnis = 0.0; // Zwischenergebnis am Anfang = 0.0
public static double PI = 3.14; // Konstante PI
public double add(double zahl2) {
zwischenergebnis = zwischenergebnis + zahl2;
return zwischenergebnis;
}
public double sub(double zahl2) {
zwischenergebnis = zwischenergebnis - zahl2;
return zwischenergebnis;
}
public double mult(double zahl2) {
zwischenergebnis = zwischenergebnis * zahl2;
return zwischenergebnis;
}
public double div(double zahl2) {
// nur teilen, wenn zahl2 nicht 0.0 ist
if (zahl2 != 0.0) {
zwischenergebnis = zwischenergebnis / zahl2;
}
return zwischenergebnis;
}
public double gibZwischenergebnis() {
return zwischenergebnis;
}
public void löscheZwischenergebnis() {
zwischenergebnis = 0.0;
}
}