Aufgabe für den Gesamtüberblick:
1. Definieren Sie eine abstrakte Basisklasse Net für Widerstandsnetze mit einem Datenelement
resistors vom Typ java.util.TreeSet, das die eindeutigen Namen (ID) aller
im Netz vorkommenden Widerstände als Strings enthält.
Ferner gibt es
(a) eine abstrakte Methode ohm() mit Rückgabetyp double, das den Gesamtwiderstand
des Netzes zurückgibt;
(b) eine implementierte Methode show(), die die Menge resistors mit einer foreach-
Schleife durchläuft und alle IDs der Widerstände im Netz als String zurückgibt.
2. Leiten Sie eine Klasse Resistor für einfache Widerstände ab. Der Widerstandswert
vom Typ double wird in einem Datenelement gespeichert und ist unveränderlich.
Die Klasse enthält einen Konstruktor mit einem double-Parameter und einem String-
Parameter für den Widerstandswert bzw. für die ID. Beide Datenelemente werden initialisiert.
3. Leiten Sie von Net außerdem zwei Klassen Serial für serielle und Parallel für parallele
Schaltungen von Netzen ab. Die Konstruktoren dieser Klassen erwarten je zwei
Widerstandsnetze als Argumente und speichern diese als Werte von Datenelementen.
Bei der Initialisierung des Datenelemets resistors wird geprüft, ob die IDs aller Widerst
ände aus beiden zusammenzuschaltenden Netzwerken konfl
iktfrei in die Menge
überfuhrt werden Können, so dass die Menge genau so viele Strings enthält, wie Widerst
ände im Netz vorhanden sind.
Sollte diese Prüfung ergeben, dass eine ID doppelt vorkommt und deshalb bei der Mengenbildung
verloren gehen wurde, dann wird eine IDNotUniqueException ausgelost.
Diesen Exception-Typ müssen Sie selbst als Unterklasse von RuntimeException geeignet
definieren. Behandeln Sie diesen Laufzeitfehler an allen Stellen in Ihren Anwendungen,
an denen er ausgelöst werden konnte.
4. Schreiben Sie eine Anwendung, die folgendes Netzwerk aufbaut und den Gesamtwiderstand
sowie die Menge der IDs auf die Konsole ausgibt. Nutzen Sie, wenn immer es
möglich ist, die Methoden Ihrer Klassen! Die Widerstände R1 bis R6 haben dabei die
Werte 100, 200, 300, 400, 500 bzw. 600 Ohm.
Frage:
Ich weiß das ist ne ganze Menge, aber kann mir vieleiecht jemand erklären, wie die Klassen serial und parallel implementiert sind, da ich einfach nicht darauf komme wie die Werte in den Klassen verwaltet werden?
1. Definieren Sie eine abstrakte Basisklasse Net für Widerstandsnetze mit einem Datenelement
resistors vom Typ java.util.TreeSet, das die eindeutigen Namen (ID) aller
im Netz vorkommenden Widerstände als Strings enthält.
Ferner gibt es
(a) eine abstrakte Methode ohm() mit Rückgabetyp double, das den Gesamtwiderstand
des Netzes zurückgibt;
(b) eine implementierte Methode show(), die die Menge resistors mit einer foreach-
Schleife durchläuft und alle IDs der Widerstände im Netz als String zurückgibt.
2. Leiten Sie eine Klasse Resistor für einfache Widerstände ab. Der Widerstandswert
vom Typ double wird in einem Datenelement gespeichert und ist unveränderlich.
Die Klasse enthält einen Konstruktor mit einem double-Parameter und einem String-
Parameter für den Widerstandswert bzw. für die ID. Beide Datenelemente werden initialisiert.
3. Leiten Sie von Net außerdem zwei Klassen Serial für serielle und Parallel für parallele
Schaltungen von Netzen ab. Die Konstruktoren dieser Klassen erwarten je zwei
Widerstandsnetze als Argumente und speichern diese als Werte von Datenelementen.
Bei der Initialisierung des Datenelemets resistors wird geprüft, ob die IDs aller Widerst
ände aus beiden zusammenzuschaltenden Netzwerken konfl
iktfrei in die Menge
überfuhrt werden Können, so dass die Menge genau so viele Strings enthält, wie Widerst
ände im Netz vorhanden sind.
Sollte diese Prüfung ergeben, dass eine ID doppelt vorkommt und deshalb bei der Mengenbildung
verloren gehen wurde, dann wird eine IDNotUniqueException ausgelost.
Diesen Exception-Typ müssen Sie selbst als Unterklasse von RuntimeException geeignet
definieren. Behandeln Sie diesen Laufzeitfehler an allen Stellen in Ihren Anwendungen,
an denen er ausgelöst werden konnte.
4. Schreiben Sie eine Anwendung, die folgendes Netzwerk aufbaut und den Gesamtwiderstand
sowie die Menge der IDs auf die Konsole ausgibt. Nutzen Sie, wenn immer es
möglich ist, die Methoden Ihrer Klassen! Die Widerstände R1 bis R6 haben dabei die
Werte 100, 200, 300, 400, 500 bzw. 600 Ohm.
Frage:
Ich weiß das ist ne ganze Menge, aber kann mir vieleiecht jemand erklären, wie die Klassen serial und parallel implementiert sind, da ich einfach nicht darauf komme wie die Werte in den Klassen verwaltet werden?