OOP Bruch kürzen im Konstruktor

Zeppi

Aktives Mitglied
Moin,
ich versuche Brüche schon im Konstruktor zu kürzen. Aber bisher kommt nicht wirklich etwas richtiges raus.

[CODE lang="java" title="Bruch"]public class Bruch {
private int zaehler;
private int nenner;


public Bruch(int z, int n) {
zaehler = z;
nenner = n;
while (nenner!=0) {
int parken = zaehler % nenner;
zaehler = nenner;
nenner = parken;
}
}
[/CODE]
Außerdem habe ich auch eine getter-Methode, da die int Werte private sind.
Weiter unten in der Klasse Bruch habe ich noch andere Methoden wie Addition und Multiplikation, aber die habe ich jetzt nicht noch extra aufgeführt.
Vielleicht hat jemand ja einen Tipp.
 
Thema kann geschlossen werden, habe es heraus bekommen.
Für die, die es interessiert, ich habe es so gemacht:
Java:
public class Bruch {
    private int zaehler;
    private int nenner;


    public Bruch(int z, int n) {
        this.zaehler = z;
        this.nenner = n;
        int test = euklid(zaehler, nenner);
        zaehler = zaehler /test;
        nenner = nenner / test;
    }
    
    public int euklid(int a, int b) {
        while (b!=0) {
            int parken = a % b;
            a = b;
            b = parken;
        }
        return a;
    }
        public int getZaehler() {
        return this.zaehler;
    }
    public int getNenner() {
        return this.nenner;
    }
    
}
 
Es gilt aber immer noch: Man verwendet keine Geschäftslogik im Konstruktor. Man initialisiert allenfalls den Objektzustand. Andernfalls können Dinge wie Ausnahmebehandlung, Testen und Mocking schwierig werden.
Deine Klasse und Methoden sind public und nicht final, können also überschrieben werden. Das kann dazu führen, dass der Ctor später etwas ganz anderes macht als vorgesehen.
 

Zurück
Oben