Gehen wir mal davon aus, dass die Funktionen nicht static sind.
Die Variablen zaehler und nenner dürfen auf keinen Fall static sein (auch wenn du add als static deklarierst): das heißt nämlich, dass alle Brüche den selben Zähler und Nenner haben. Da du aber verschiedene Brüche haben willst, ist das kontraproduktiv.
Die Multiplikation würde dann so funktionieren:
Sorry für das Penner
Diese bescheuerte Autokorrektur muss ich mal ausschalten
Zitat:
willst du einen neuen Bruch erzeugen oder den bestehenden verändern?
Das geht mir aus der Aufgabenstellung eben nicht wirklich hervor. Um Brüche zu addieren oder auch subtrahieren, benötige ich ja zwei Stück. Daher meine Vermutung, dass der Bruch aus dem Konstruktor genommen werden muss und die Methode add() den zweiten Bruch beinhaltet?
eulerscheZahl
int penner?
Du hast bei add zwei Möglichkeiten: willst du einen neuen Bruch erzeugen oder den bestehenden verändern?
Für den neuen Bruch brauchst du ein
code:
1:
static Bruch add(Bruch b1, Bruch b2) {...}
Um den bestehenden zu verändern:
code:
1:
void add(Bruch b2) {...}
Java_Beginner
Hi :-)
Ich habe die gleiche Aufgabe bekommen und stelle mir jetzt vorab die Frage, wie diese genau zu verstehen ist. Ich habe den Konstruktor welcher den ersten Bruch enthält
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
private static int zaehler;
private static int penner;
public Bruch (int zaehler, int nenner)
{
this.zaehler = zaehler;
this.nenner = nenner;
}
und dann die statischen Methoden add() ,subtrakt(), multiply() und division() die jeweils zwei weitere Integer - Parameter haben?
SarahK.
Kein Problem :-)
Karlito
OK, dann will ich nix gesagt haben. Habe es halt nicht geprüft.
Gruß,
Karlito
SarahK.
Hab heute Mittag zig Versuche damit gestartet und die waren alle erfolgreich.
Karlito
Check mal bitte noch den ggT. Du hast meiner Meinung nach den euklidischen Algorithmus falsch implementiert.
SarahK.
Danke für die Antwort, dann werde ich das mal abändern.
eulerscheZahl
Zunächst einmal finde ich die Architektur nicht gelungen: du legst hier zwei Brüche in einer Klasse an und teilst dann die Rechenmethode mit. Was, wenn man mit dem Ergebnis weiterrechnen will, oder auch nur einen Bruch anlegen und kürzen? Außerdem darf die Multiplikation nicht static sein, wenn du sie mit h.multiplikation() aufrufen willst.
Die Klasse Bruch hat einen Zähler und einen Nenner. Du kannst einen anderen Bruch dazuaddieren, subtrahieren, ….
Beim ggT gibst du am besten das Ergebnis zurück, also private static int ggT (int a, int b)
Und beim kürzen teilst du Zähler und Nenner beide durch den vom ggT berechneten Wert.
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.