Eine Klasse Bruch eignet sich als Übungsbeispiel für die Anwendung von Klassen, Attributen, Methoden und Konstruktoren. Wir gehen zunächst davon aus, dass ein Bruch aus zwei int-Werten für Zähler und Nenner besteht.
class Bruch { int zaehler, nenner; }Die folgenden Aufgaben dienen als Anregung, die Klasse zu entwickeln und dabei den Umgang mit Klassen einzuüben.
Anstatt nach einer Musterlösung zu suchen, sollten Sie die zugrundeliegenden Themen noch einmal durcharbeiten. Dazu können die folgenden Webseiten helfen:
Konstruktoren
- Erstellen Sie einen Standardkonstruktor, der dafür sorgt, dass der Nenner beim Anlegen eines Objekts immer 1 ist und der Zähler mit 0 vorbesetzt ist.
- Erstellen Sie einen Konstruktor, der zwei Integer als Parameter verwendet. Damit kann der Anwender der Klasse den Wert des Bruchs beim Anlegen initialisieren.
- Entfernen Sie langfristig den Standardkonstruktor, so dass alle Brüche beim Anlegen initialisiert werden müssen.
Methoden
- Erstellen Sie die Methoden add, minus, mul und div für die vier Grundrechenarten, bei denen als zweiter Operand ein int verwendet wird.
- Erstellen Sie gleichnamige Methoden, um die vier Grundrechenarten mit einem Bruch auszuführen.
- Achten Sie darauf, dass bei den Grundrechenmethoden nur der Ergebnis-Bruch geändert wird, aber nicht die Operanden.
- Falls Ihre Programmiersprache das hergibt, überladen Sie die Grundrechenoperatoren +, -, * und /.
- Erstellen Sie eine Methode toString, die für den Bruch einen String erstellt, damit dieser einfach auf dem Bildschirm ausgegeben wird. Beispiel: "3/4"
- Erstellen Sie eine Methode, die den Bruch kürzt. Bevor Sie eine Primzahlenzerlegung durchführen, sollten Sie sich den Algorithmus von Euklid anschauen, der den größten gemeinsamen Teiler berechnet.
Privatisierung
- Sorgen Sie dafür dass die Attribute nicht mehr direkt zugreifbar sind.
- Ergänzen Sie die Klasse um Getter und Setter.
- Überlegen Sie, welche Getter oder Setter sinnvoll sind, wenn Sie einen Konstruktor mit Parameter und eine Methode zur Umwandlung in einen String besitzen.
Weitere Aufgaben
- Sorgen Sie dafür, dass sich jeder Bruch immer im gekürzten Zustand befindet.
- Wie erreichen Sie das, wenn Sie nur an einer Stelle die Methode zum Kürzen aufrufen können.
Diese Seite unterstützt meine Vorlesung "Objektorientierte Programmierung" für den Studiengang Medieninformatik an der Hochschule Flensburg.
Inhalte basieren auf meinen Büchern Java (Alles in einem Band) für Dummies, C++ für Dummies und Python.