Was wird unter dem Begriff “Objektorientierung” verstanden ?
ein Denkansatz, bei dem Programme als Menge von über Nachrichten kooperierenden Objekten organisiert werden und jedes Objekt Instanz (Ausprägung) einer Klasse ist.
Weiterentwicklung einer benutzerdefinierten Datenstruktur, ähnlich den menschlichen Denkstrukturen
Im Unterschied zur ‚klassischen‘ strukturierten Programmierung → Objekt = Daten + Algorithmen, d.h. Zusammenfassung von Daten und Funktionalitäten
Erläutern Sie die Begriffe Datenkapselung, Polymorphie und Vererbung.
Datenkapselung:
Verbergen der inneren Struktur eines Objekts
Polymorphie (Vielgestaltigkeit):
eine gleichnamige Methode kann auf unterschiedliche Objekte angewendet werden.
Vererbung:
Objektklassen können als Basis für andere Klassen dienen; die abgeleiteten Klassen „erben“ die Elemente der Ursprungsklasse → in C# initiiert über Doppelpunkt, Beispiel : class PKW : Fahrzeug
Erläutern Sie den Begriff “Vererbung” anhand eines C# Sourcecode-Beispiels
class Fahrzeug { public void Starten() { } }
class Auto : Fahrzeug { public void Hupen() { } }
// Nutzung
Auto meinAuto = new Auto();
meinAuto.Starten(); // Erbt von Fahrzeug
meinAuto.Hupen(); // Eigene Methode
Beschreiben Sie die Begriffe “Klasse” und “Objekt”. Finden Sie hierzu ein Beispiel und erläutern Sie dieses in C#-Notation.
Klasse:
Eine Vorlage oder ein Bauplan für Objekte.
Definiert Eigenschaften (Variablen) und Methoden (Funktionen).
Objekt:
Eine Instanz einer Klasse.
Repräsentiert eine konkretes Ding oder eine Entität.
Welche Sichtbarkeiten / Zugriffsmodifikatoren von Klassen, Methoden und Eigenschaften sind Ihnen bekannt ? Was bedeuten diese ?
Public: unbeschränkt
Protected: innerhalb der Klasse und der darauf abgeleiteten Klassen
Internal: innerhalb des aktuellen Objektes
Internal Protected: innerhalb des aktuellen Projektes oder der abgeleiteten Klasse
Private: nur innerhalb der Klasse
Wie sind Methoden aufgebaut und welche Arten von Methoden haben Sie kennengelernt ?
Methodenkopf → definiert den Aufruf einer Methode; stellt die Schnittstelle zum Benutzer dar,
Methodenrumpf → wird durch die geschweiften Klammern begrenzt, innerhalb der Klammern stehen die zur Methode gehörenden Anweisungen (implementiert die Methode)
Eigenschaftsmethoden
Ereignismethoden
Wie kann auf Methoden und wie auf Eigenschaften einer Klasse zugegriffen werden ?
Methoden werden immer mit ihrem Namen aufgerufen
Falls die Parameterliste nicht leer ist, werden in den runden Klammern die Werte für die Parameter übergeben – die übergebenen Parameter müssen dem deklarierten Typen im Methodenkopf entsprechen !
Falls die Methode einen Rückgabewert hat, kann dieser in einer Variablen gespeichert werden.
Welche Funktion hat der Konstruktor einer Klasse ? Wie viele darf es geben ? Erläutern Sie dieses anhand eines einfachen Beispiels in C#-Notation.
Der Konstruktor hat die Aufgabe, das Objekt in einen konsistenten, d.h. fehler- und widerspruchsfreien Startzustand zu versetzen.
Der Konstruktor ist eine Methode der Klasse.
Jede Klasse kann mehrere Konstruktoren haben.
Der Konstruktor kann Übergabeparameter haben.
Der Konstruktor hat keinen Rückgabetyp, auch nicht void.
Der Standardkonstruktor muss nicht explizit programmiert werden und ist i.d.R. nicht im UML-Klassendiagramm notiert.
Beispiel: public KPI_Menu(){InitializeComponent()}
Der Konstruktor wird automatisch aufgerufen, wenn man ein Objekt der Klasse erzeugt. (beispielweise mit new)
Beschreiben Sie den Lebenszyklus eines Objektes anhand eines Beispiels in C#.
Referenzierung - eine Objektvariable wird deklariert, sie verweist momentan noch auf null
CKunde kunde1;
Instanziierung - Objektvariable zeigt auf einen konkreten Wert
kunde1 = new CKunde() ;
Initialisierung - Datenfelder der Objektvariable werden gefüllt
kunde1.anrede = “Frau”;
Arbeiten mit dem Objekt - es wird auf Eigenschaften und Methoden des Objektes zugegriffen
label1.text = kunde1.adresse();
Zerstören - Objekt wird deferenziert, der belegte Speicherplatz wird wieder freigegeben
kunde1 = null;
Welche Methode hat nur den Methodenkopf ? Was ist dabei zu beachten ?
"Abstrakte Methode" hat nur Methodenkopf, ohne Implementierung im Rumpf.
Wird durch das Schlüsselwort "abstract" in vielen Programmiersprachen gekennzeichnet.
Oft Teil von abstrakten Klassen oder Schnittstellen.
Konkrete Implementierung erfolgt in abgeleiteten Klassen oder Klassen, die das Interface implementieren.
Zuletzt geändertvor einem Jahr