Verständnistest im Kurs: JAVA-001
5.8 Verständnistest zum Thema Objektorientierte Programmierung (OOP)

Bitte beachten Sie, dass alle, einige oder eine der vorgegebenen Antwortmöglichkeiten korrekt sein können.

1. Welche der genannten Elemente eines Programms sind kennzeichnend für die objektorientierte Programmierung im Gegensatz zu anderen Programmierstilen? 
1) Klassen
2) Objekte
3) Datenkapselung
4) Vererbung
5) Variablen
6) Schleifen
7) Fallunterscheidungen
 
2. Wie sollte in einem Programm zur Personaleinsatzplanung die Zuordnung von Personen zu Projekten oder Tätigkeiten geschehen? 
1) In Form von Assoziationen.
2) In Form von Kompositionen.
3) Assoziationen und Kompositionen sind dazu gleichermaßen geeignet.
4) Personen und Projekte oder Tätigkeiten sollten als voneinander völlig unabhängige Objekte modelliert werden, die weder durch Assoziationen noch durch Kompositionen miteinander in Beziehung stehen.
 
3. Welche Aussagen über Objekte einer Klasse sind richtig? 
1) Alle Objekte einer Klasse besitzen die gleichen Methoden.
2) Alle Objekte einer Klasse besitzen die gleiche Anzahl an Attributen.
3) Alle Objekte einer Klasse haben immer die gleichen Attributwerte.
4) Alle Objekte einer Klasse können nur gleichzeitig zerstört werden.
 
4. Welche Aussage über die Kopplung von Objekten ist richtig? 
1) Die Kopplung durch eine Komposition ist stärker als die durch eine Assoziation.
2) Die Kopplung durch eine Assoziation ist stärker als die durch eine Komposition.
3) Kompositionen und Assoziationen koppeln Objekte gleichstark aneinander.
 
5. Betrachten Sie folgendes Beispiel: Ein Motor ist ein Objekt bestehend aus Zylindern, Ventilen, Kurbelwellen usw. Zu einem LKW gehört noch etwas mehr, etwa Lenkung, Getriebe und Karosserie. Ist es dann sinnvoll, eine LKW-Klasse von einer Motor-Klasse abzuleiten? 
1) Ja, denn jeder LKW enthält einen Motor.
2) Nein, denn dann müssten alle LKW denselben Motor haben.
3) Nein, denn ein LKW ist kein Motor sondern besitzt einen Motor. Außerdem wäre es bei diesem Design nicht möglich, den Motor eines LKW auszutauschen.
4) Nein, denn es wäre besser, die Motor-Klasse von der LKW-Klasse abzuleiten.
 
6. Welche Aussagen über die Lebensdauer von Objekten sind zutreffend? 
1) Die Lebensdauer eines Objekts beginnt mit seiner Erzeugung.
2) Die Lebensdauer eines Objekts endet immer mit seiner Zerstörung.
3) Die Lebensdauer eines Objekts endet frühestens mit seiner Zerstörung, kann aber noch darüber hinaus gehen.
4) Die Lebensdauer eines Objekts kann an die Lebensdauer eines anderen Objektes gekoppelt sein.
 
7. Welche Aussagen über die Eigentümerschaft an Objekten sind zutreffend? 
1) Bei einer Assoziation kann die Eigentümerschaft zwischen den einzelnen Objekten wechseln.
2) Bei einer Komposition kann die Eigentümerschaft zwischen den einzelnen Objekten wechseln.
3) Ein Objekt kann nur die Eigentümerschaft an höchstens einem anderen Objekt zur Zeit haben.
4) In einer Assoziation liegt die Eigentümerschaft über ein Objekt ursprünglich bei dem erzeugenden Objekt.
 
8. Wodurch werden die Rechte für den Zugriff auf Attribute und Methoden einer Klasse von außen definiert? 
1) Durch Access-Modifier.
2) Durch Polymorphismus.
3) Durch Vererbung.
4) Durch Instanzen.
 
9. Welche Aussage über Vererbung ist richtig? 
1) Vererbung ist ein Regelungsmechanismus, der bestimmte Attributwerte eines Objekts an ein zweites weitergibt, wenn das erste Objekt zerstört wird.
2) Vererbung ist ein Verfahren zur Wiederverwendung von vorhandenem Programmcode, bei dem eine neue Klasse durch Erweitern oder Abwandeln einer bereits vorhandenen Klasse gebildet wird.
3) Als Vererbung wird das Übertragen der Werte der Attribute eines Objekts auf ein anderes Objekt der gleichen Klasse bezeichnet.
4) Die Erzeugung einer neuen Instanz einer Klasse wird als Vererbung bezeichnet.
 
10. Welche Aussagen über die Folgen der Datenkapselung sind zutreffend? 
1) Der Benutzer einer Klasse kann nur auf die von außen erreichbaren Elemente einer Klasse zugreifen.
2) Solange die Schnittstelle einer Klasse nach außen unverändert bleibt kann der Inhalt einer Klasse verändert werden, ohne dass Änderungen außerhalb der Klasse nötig sind.
3) Bei Änderungen am Inhalt einer Klasse ändert sich automatisch auch deren Schnittstelle nach außen.
 
11. Welche Aussagen über public Interfaces sind richtig? 
1) Ein public Interface bestimmt, auf welche Methoden einer Klasse von außen zugegriffen werden kann.
2) Ein public Interface bestimmt, auf welche Attribute einer Klasse von außen zugegriffen werden kann.
3) Ein public Interface bestimmt, welche Benutzer auf die Daten in einer Klasse zugreifen dürfen.
4) Ein public Interface bestimmt, wie viele Instanzen einer Klasse erzeugt werden können.
 
12. Welche Aussagen zu Assoziationen und Kompositionen sind richtig? 
1) Bei einer Komposition haben alle beteiligten Objekte die gleiche Lebenszeit.
2) Bei einer Assoziation haben alle beteiligten Objekte die gleiche Lebenszeit.
3) Jede Assoziation ist auch eine Komposition.
4) Ein Objekt, das eine Komposition ist, kann nicht an einer Assoziation beteiligt sein.
5) Die an einer Assoziation beteiligten Objekte können zu unterschiedlichen Zeitpunkten angelegt werden.
6) Die an einer Assoziation beteiligten Objekte können zu unterschiedlichen Zeitpunkten zerstört werden.
 
13. Welche Aussage über die Attribute eines Objekts ist richtig? 
1) Die Werte der Attribute eines Objekts werden bei seiner Erzeugung festgelegt und können später verändert werden, sofern die Klasse das zulässt.
2) Die Werte der Attribute eines Objekts werden bei seiner Erzeugung festgelegt und können danach keinesfalls mehr verändert werden.
3) Unmittelbar nach seiner Erzeugung besitzt ein Objekt gar keine Attribute. Die Attribute müssen dem Objekt erst nachträglich hinzugefügt werden.
 
14. Welche Aussagen über Abstrakte Datentypen sind richtig? 
1) Ein abstrakter Datentyp koppelt Zustand mit Verhalten.
2) Abstrakte Datentypen sind ein wesentliches Konzept der objektorientierten Programmierung.
3) Ein abstrakter Datentyp beinhaltet nur Daten, aber keine Funktionen.
4) Ein abstrakter Datentyp beinhaltet nur Funktionen, aber keine Daten.
 
15. Welche Aussagen über Objekte und Klassen sind zutreffend? 
1) Eine Klasse ist eine Instanz eines Objekts.
2) Ein Objekt ist eine Instanz einer Klasse.
3) Ein Objekt ist ein Attribut einer Klasse.
4) Ein Objekt ist eine Referenz auf eine Klasse.
5) Es können beliebig viele Instanzen einer Klasse erzeugt werden.
6) Es können beliebig viele Referenzen auf eine Klasse erzeugt werden.
 
16. Eine einfache Java-Klasse zur Repräsentation eines Datums sieht wie folgt aus:
  
public class Datum {
public int tag;
public int monat;
public int jahr;
}

Wie muss diese Klasse geändert werden, damit das Prinzip der Datenkapselung eingehalten wird? Markieren Sie alle nötigen Schritte. 
1) Alle drei Variablen in der Klasse müssen entfernt und durch Methoden ersetzt werden.
2) Alle drei Variablen in der Klasse müssen als private deklariert werden.
3) Die Klasse Datum muss als private deklariert werden.
4) Die Klasse muss um Zugriffsmethoden zum Lesen und/oder Ändern der Variablen ergänzt werden.
 
17. Äpfel, Birnen, Kirschen, Pflaumen und Bananen sind Obstsorten, aber nur Kirschen und Pflaumen gehören zu den so genannten Steinobstsorten. Welche Aussagen treffen zu, wenn dieser Sachverhalt unter Verwendung von Vererbung durch die Klassen Obst, Steinobst, Apfel, Birne, Kirsche, Pflaume und Banane modelliert wird? 
1) Apfel ist eine Subklasse von Obst.
2) Birne ist eine Superklasse von Apfel.
3) Kirsche ist eine Subklasse von Steinobst.
4) Banane ist eine Subklasse von Steinobst.
5) Obst ist eine Superklasse von Steinobst.
6) Steinobst ist eine Superklasse von Birne.
7) Obst ist eine Superklasse von Birne.
 
Auswertung des Tests Zurücksetzen des Tests