Klassen Flashcards

1
Q

Was versteht man unter objektorienterte Programmierung?

A

Reale Objekte und Sachverhalte mittels Software abstrakt zu modellieren bzw darzustellen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was versteht man unter Computational Thinking?

A

Das Herangehen an Problemstellungen in einer Denkweise eines Computers. Probleme identifizieren > Probleme abstrakt modellieren > Teilprobleme zerlegen > Lösungsstrategien finden > formalisiert darstellen, sodass man als Mensch sie verstehen und ausführen kann

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was bedeutet Abstraktion? Was versteht man in der objektorientierten Programmierung darunter?

A

Eine vereinfachte Modellierung durch Weglassen von Details. Reale Sachverhalte und ihre Eigenschaften werden in vereinfachter Weise abgebildet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist das Ziel in der objektorientierten Programmierung?

A

Lösungen von Problemstellungen, sowie Modelle möglichst einfach und realitätsnah zu modellieren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was versteht man unter Kapselung?

A

Konzepte (z.B. Form, Kreis, Polygon) zu separieren; Datenkapselung verhindert den Missbrauch und die falsche Benutzung der Daten; Zugriffsrechte für Variablen, Methoden und Klassen werden definiert; erlaubt einfache Modellierung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was sind Klassen?

A

Baupläne mit verschiedenen Eigenschaften und Methoden für eine Reihe von Objekten. Sie enthalten Eigenschaften (Membervariablen) und Operationen/Methoden (Memberfunktionen) mit denen man Objekte erzeugen kann. Sie dienen der Abstraktion und der Repräsentation von realen Objekten und Sachverhalten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was sind Instanzen einer Klasse?

A

Objekte einer Klasse, welches Exemplare aus den Eigenschaften und Methoden einer Klasse sind. Durch Konstruktoren werden sie aus Klassen gebildet und haben ihren eigenen Datentyp, Eigenschaften und Methoden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist eine Instanzierung?

A

Das Erzeugen eines konkreten Objekts einer Klasse. Während der Instanzierung wird ein Konstruktor ausgeführt.
Ein Beispiel für ein konkretes Objekt wäre ein Objekt, welches die Eigenschaften z.B. eines konkreten Autos z.B. einem Porsche beschreibt und in die Klasse “Auto” gehört, die Eigenschaften und Methoden für die Modellierung von Autos enthält

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Welche Zugriffsebenen in der Kapselung gibt es?

A

private, protected und public

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was versteht man unter private?

A

Das Objekt ist durch Memberfunktionen zugreifbar; Zugriff nur innerhalb der Klasse; Standardeinstellung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was versteht man unter protected?

A

Das Objekt ist nur durch die Klasse selbst oder durch abgeleiteten Klassen/Kindklassen (Vererbungen) zugreifbar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was versteht man unter public?

A

Das Objekt ist öffentlich und ist immer von jedem außerhalb, als auch innerhalb der Klasse zugreifbar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wie ist die Implementierung einer Klasse in C++ typischerweise aufgeteilt?

A

In zwei Dateien aufgeteilt. Die Deklaration der Klasse hat in der Datei die Endung “.h” und definiert die Struktur bzw. Schnittstelle für Nutzer. Die Implementierung hat in der Datei die Endung “.cpp” und implementiert die Memberfunktionen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist ein Konstruktor?

A

Ein Konstruktor ist eine spezielle Methode bzw. Memberfunktion, die Objekte erzeugt, Ressourcen allokiert und Membervariablen initialisiert. Die Funktion hat keinen Rückgabetyp; der Name ist identisch zu dem der Klasse; Konstruktoren können mit Parametern versehen werden; Compiler definiert automatisch einen Konstruktor, falls noch keiner vordefiniert wurde

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was ist ein Destruktor?

A

Ein Destruktor ist verantwortlich für das Freigeben der vom Objekt genutzten allokierten Ressourcen; besitzt keinen Rückgabetyp; Name ist identisch zu dem der Klasse mit Tilde ~ davor; hat keine Parameter; niemals vom Nutzer aufgerufen; wird immer bei dynamischer Speicherallokation benötigt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was versteht man unter einer Objekt-Zusammensetzung?

A

Dass in Membervariablen ein Objekt mehrere Objekte enthalten kann z.B. automatisch allokierte Objekte oder dynamisch allokierte Objekte in Pointern. Der Konstruktor muss diese Objekte immer initialisieren

17
Q

Was versteht man unter Kopieren und Zuweisen?

A

Das Kopieren des Inhalts eines Objekts in ein anderes Objekt hinein. Explizit bei Zuweisungen; Implizit bei Call by-Value oder Rückgabe. Der Compiler erzeugt Funktionen für Zuweisungen (assignments) und Copy Construction automatisch: erstellt shallow copy; Inhalt jeder Membervariable wird kopiert; Problem bei Pointern: nur die Adresse wird kopiert und nicht das Objekt auf das der Pointer zeigt

18
Q

Was macht der Copy Konstruktor?

A

Er definiert, wie das Objekt kopiert wird; Operationen: Speicher allokieren > Daten kopieren

19
Q

Was macht der Zuweisungs-Operator?

A

Zuweisung analog zum Copy Konstruktor, aber Zielobjekt existiert bereits. Operationen bei Zuweisung: prüfen, ob Quell- und Zielobjekt identisch sind > dynamisch allokierten Speicher im Zielobjekt freigeben > Speicher für neue Daten allokieren > Daten kopieren > Referenz auf das Objekt zurückgeben

20
Q

Wie lautet die Regel der Drei?

A

Falls eine Klasse einer der drei Methoden Copy Konstruktor, Zuweisungsoperator; Destruktor besitzt, dann müssen alle drei implementiert werden; falls eine Methode fehlt, dann ist die Implementierung vom Compiler meist falsch

21
Q

Was versteht man unter einer Vererbung?

A

Das erben der selben Eigenschaften, Methoden und Verhalten einer Klasse/Elternklasse an ihre abgeleitete Klasse bzw. Kindklasse; Verwandte Konzepte führen zu Klassen mit ähnlichen Charakteristika; führt zu ähnlichem Code; erlaubt Gemeinsamkeiten zwischen Klassen zu modellieren; erbt nur public oder protected deklarierte Memberfunktionen; abgeleitete Klasse kann Memberfunktion durch neue Implementierung überschreiben

22
Q

Was versteht man unter Polymorphismus?

A

Wenn ein Pointer einer Elternklasse auf das Objekt der abgeleiteten Klasse zeigt; Pointer erlaubt nur Zugriff auf öffentliche Membervariablen und Memberfunktionen der Elternklasse

23
Q

Was macht das Schlüsselwort “virtual”?

A

Es ermöglicht ein polymorphes Verhalten und sorgt dafür, dass auch beim Pointer auf Elternklasse, die Funktionen der entsprechenden Kindklasse des Objektes aufgerufen werden; “virtual” muss in der Elternklasse genannt werden

24
Q

Gib ein Beispiel für eine Eltern- und Kindklasse

A

Tiere (Elternklasse) > Säugetiere, Fische (erste Kindklasse) > Kuh, Pferd, Lachs (zweite Kindklasse)

25
Q

Zusammenfassung

A

square.h und square.cpp; Objekte sind Instanzen von Klassen; Konstruktoren initialisieren Membervariablen; Destruktoren geben Ressourcen frei; Hierarchie durch Vererbung ermöglicht elegante Modellierung und Einsparen von Quellcode; Eigenschaften werden durch Variablen deklariert; Variablen in Form von Datentypen; Operationen werden durch Methoden deklariert;