Hallo zusammen,
wir sollen als Übung eine Klasse Rational erstellen.
Wenn ich 2 Brüche miteinander Addiere kommt zwar das Ergebnis raus aber er kürzt es nicht.
Hier mal kurz meine Methoden:
und das Addieren hier:
kann ich sowas überhaupt mit dem return machen? Denn er erstellt ja ein neues Objekt und das soll ja gekürzt werden wenn ich nun wie oben hin gehe reduce(); voran stelle hat das nicht die gewünschte Auswirkung es sei den die Brüche würden paarweise zusammen passen und man könnte beides Kürzen oder?
Die Getter sind so:
hehe den ggt (gcd) vergessen
wir sollen als Übung eine Klasse Rational erstellen.
Wenn ich 2 Brüche miteinander Addiere kommt zwar das Ergebnis raus aber er kürzt es nicht.
Hier mal kurz meine Methoden:
Java:
Rational reduce(){
if (getNum() == 0)
denom = 1;
else {
int gcd = gcd(getNum(), getDenom());
num = num / gcd;
denom = denom / gcd;
}
return this;
}
und das Addieren hier:
Java:
Rational add(Rational r){
reduce();
r.reduce();
return new Rational ((getNum()*r.getDenom()) + (r.getNum()*getDenom()), getDenom()*r.getDenom());
}
kann ich sowas überhaupt mit dem return machen? Denn er erstellt ja ein neues Objekt und das soll ja gekürzt werden wenn ich nun wie oben hin gehe reduce(); voran stelle hat das nicht die gewünschte Auswirkung es sei den die Brüche würden paarweise zusammen passen und man könnte beides Kürzen oder?
Die Getter sind so:
Java:
int getNum(){
return num;
}
int getDenom(){
return denom;
}
hehe den ggt (gcd) vergessen
Java:
int gcd(int a, int b){
int r = a%b;
while (r != 0){
a = b;
b = r;
r = a%b;
}
return b;