Projekt:2021/Fingerübungen: Unterschied zwischen den Versionen
Jneug (Diskussion | Beiträge) (→Brüche) |
Jneug (Diskussion | Beiträge) (→Brüche) |
||
| Zeile 155: | Zeile 155: | ||
==== Brüche ==== | ==== Brüche ==== | ||
Übernimm die Klasse <code>Bruch</code> von oben und die Klasse <code>Rechner</code> unten. | Übernimm die Klasse <code>Bruch</code> von oben und die Klasse <code>Rechner</code> unten. | ||
{{Hinweis|Für das Kürzen eines Bruches benötigst Du den größten gemeinsamen Teiler. Den ggT hatten wir [[Lernpfad:Einführung in Git/8|früher schonmal berechnet]]. | {{Hinweis|Für das Kürzen eines Bruches benötigst Du den größten gemeinsamen Teiler. Den ggT hatten wir [[Lernpfad:Einführung in Git/8|früher schonmal berechnet]].}} | ||
<syntaxhighlight lang="java" line="1"> | <syntaxhighlight lang="java" line="1"> | ||
public class Rechner { | public class Rechner { | ||
Version vom 10. November 2021, 13:06 Uhr
Fingerübungen zur Objektorientierten Programmierung
Auf dieser Seite findest Du verschiedene Übungen zur Wiederholung und Festigung der Objektorientierten Programmierung (OOP). Die Übungen sind in verschiedene Kategorien einsortiert. Suche Dir Übungen heraus, bedienen Du noch Nachholbedarf hast.
Implementierungsdiagramme in Quelltext übersetzen
Erstelle zu den UML-Diagrammen unten jeweils ein Klassengerüst mit allen gezeigten Methoden. Die Methoden müssen keine Funktionalität enthalten, ergänze bei Methoden mit Rückgaben einfach nur einen return Befehl.
Zum Beispiel zu +wuerfeln(): int
public int wuerfeln() {
return 6;
}
Halte Dich bei der Übersetzung immer genau an das UML-Diagramm. Manche der hinteren Diagramme halten sich nicht strikt an unsere Konventionen (z.B. "Alle Objektvariablen sind private"). Achte also auf die Sichtbarkeiten und Namen der Parameter.
Bruch
Bank
Bibliothek
public class Bruch {
private int nenner;
private int zaehler;
public Bruch(int pNenner, int pZaehler) {
nenner = pNenner;
zaehler = pZaehler;
}
public int getNenner() {
return nenner;
}
public void setNenner(int pNenner) {
nenner = pNenner;
}
public int getZaehler() {
return zaehler;
}
public void setZaehler(int pZaehler) {
zaehler = pZaehler;
}
public void kuerzen() {
}
public double asDecimal() {
return (double)zaehler/(double)nenner;
}
}
Mit Objektreferenzen arbeiten
In diesem Video zeigt der Kollege Herr Bolte die Grundlagen von Objektreferenzen und der Interaktion von Objekten (hier am Beispiel der BlueJ-Variante Greenfoot). Die Erklärung aus dem Unterricht (mit dem Vergleich zu einem Paketschein) kannst Du unter Lernpfad:Objektorientierte Programmierung mit Java/Referenzen finden.
Übernimm die gezeigten Klassen in ein neues BlueJ-Projekt und löse die Aufgaben dazu.
Brüche
Übernimm die Klasse Bruch von oben und die Klasse Rechner unten.
public class Rechner {
/**
* Multipliziert die Brüche a und b und gibt das Produkt als neues
* Bruch-Objekt zurück.
*/
public Bruch multipliziere(Bruch a, Bruch b) {
return null;
}
/**
* Addiert die Brüche a und b und gibt die Summe als neues
* Bruch-Objekt zurück.
*/
public Bruch addiere(Bruch a, Bruch b) {
return null;
}
/**
* Kürzt den Bruch b vollständig (und speichert den gekürzten Bruch in b).
*/
public void kuerze(Bruch b) {
}
/**
* Bildet den Kehrwert des Bruches (und speichert ihn in b).
*/
public void kehrwert(Bruch b) {
}
/**
* Dividiert die Brüche a und b und speichert das Ergebnis im Bruch a.
*/
public Bruch dividiere(Bruch a, Bruch b) {
return null;
}
}