interface / Brüche in java übergeben

Status
Nicht offen für weitere Antworten.

kb

Mitglied
hi! folgender code steht in meinen vorlesungs-folien.

Code:
interfaceOrderable{
boolean lessThan(Orderable comp);
boolean equal(Orderable comp);
}

Code:
class SortableInteger implements Orderable {
SortableInteger(int val) {// Konstruktor
this.val= val;
}
public int intValue() {
return this.val;
}
public boolean lessThan(Orderable comp) {
return this.val < ((SortableInteger) comp).val;
}
public boolean equal(Orderable comp){
return ((SortableInteger) comp).val == this.val;
}
public String toString() {// String-Darstellung
return new String(""+this.val);
}
private int val;
}
so.

ich vermut das equal und lessthan true oder false zurückgeben, is ja garnix anders möglich.
jetz aber - wir übergeben ein Orderable comp.
das comp wird nacher in ein integer gewraped und mit dem aktuellen wert verglichen. soweit - so gut.
ich nehm mal an das die übergabe variable mit Orderable deklariert ist, weil das ja auch für objekte von SortableInteger "zählt" (das is mir grad erst beims chreiben aufgefallen *g*)

jetz is meine aufgabe, das ich das Orderable Interface in eine Klasse Namens Rational zu importieren, welche Number extendet. Die klasse soll brüche darstellen.
Natürlich muss isch, wie es bei einem interface sein muss, die methoden noch vollständig deklarieren.
wie sorg ich jetz dafür, das mir irgendein ergebnis zurückgegeben wird das ich wrapen kann?
oder soll ich noch methoden in Rational definieren, die zähler und nenner zurückgeben?
 
Ich denke mal sowas in der richtung wird da verlangt.

Code:
public boolean lessThan(Orderable comp) {
    if (comp instanceOf  Rational){
        Rational rat = (Rational) comp;
        return (this.zaehler * rat.getNenner()) < (this.nenner * rat.getZaehler());

    }
    return false;
}

public boolean equal(Orderable comp){
    if (comp instanceOf  Rational){
        Rational rat = (Rational) comp;
        return (this.zaehler * rat.getNenner()) == (this.nenner * rat.getZaehler());

    }
    return false;
}
 
dankeshcön bis jetzt! ich hab das prinzip verstanden, bei evtl. unklarheiten wend ich mich morgen nochma an dich 🙂
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben