Das Interface “Comparable”

Werbung
Das Interface “Comparable”
Eine Klasse, die das Interface Comparable implementiert, bringt ihre Objekte in eine KleinerGrößer-Ordnung. Es verfügt über nur eine Methode, nämlich compareTo():
public interface Comparable {
public int compareTo(Object o)
}
Ein Interface zu implementieren bedeutet, alle seine Methoden zu implementieren. Das
Interface Comparable zu implementieren heißt also, eine compareTo()-Methode mit der oben
genannten Signatur zu erstellen.
Regeln für compareTo()
Wenn a.compareTo(b) < 0 ergibt, dann gilt a < b.
Wenn a.compareTo(b) > 0 ergibt, dann gilt a > b.
Wenn a.compareTo(b) == 0 ergibt, dann sollte a.equals(b) gelten.
Die von euch eingeführte Ordnung muss „in einer Linie“ sein, das heißt:
x.compareTo(y) > 0 && y.compareTo(z) > 0 => x.compareTo(z) > 0.
Welche negative Zahl bzw. welche positive Zahl ihr bei eurer Implementierung von
compareTo() zurückgebt, ist beliebig. Weil die Signatur von compareTo() ein Object als
Parameter erwartet, wird bei der Implementierung zunächst ein Casting zu der von euch
implementierten Klasse erforderlich sein.
Automatisches Sortieren von Arrays
Arrays von Klassen, die das Comparable-Interface implementieren, können mit der sortMethode der Klasse Arrays automatisch sortiert werden:
public class Arrays {
public static void sort(Object[] a)
}
Beispiel: Römische Zahlen
Die Klasse RoemischeZahl ist wie folgt modelliert und implementiert worden:
public class RoemischeZahl {
//Eigenschaften
private int zahl;
private String roemischeZahl;
//Konstruktoren
public RoemischeZahl(int i)
//Methoden
public void add(int i)
public void add(RoemischeZahl r)
public int intValue()
public String stringValue()
}
Aufgabe:
1) Führe alle notwendigen Ergänzungen durch, damit die Klasse RoemischeZahl
das Interface Comparable implementiert.
2) Implementiere die compareTo()-Methode.
3) Erzeuge ein Array von Römischen Zahlen und sortiere es mit der Arrays.sort()Methode.
Zusatzaufgabe:
4) Implementiere die Klasse RoemischeZahl vollständig.
Herunterladen