OOP-Grundlagen: Instanz einer Klasse.
Objekt
Schlüsselwort, um ein Objekt zu erzeugen.
new
Welches Zeichen/Keyword nutzt C# für Vererbung in der Klassendeklaration?
Den Doppelpunkt
(class A : B)
Schlüsselwort zur Deklaration eines Interfaces.
interface
In Visual Studio: Wie heisst das Setzen eines roten Punkts, damit das Programm an dieser Stelle anhält?
Breakpoint (Haltepunkt)
Prinzip: Daten "verstecken" und Zugriff über kontrollierte Schnittstellen erlauben.
Kapselung (Encapsulation)
Was ist der Hauptvorteil einer Property gegenüber einem öffentlichen Field?
Kontrollierter Zugriff (z.B. Validierung) über get/set
Schlüsselwort in der Basisklasse, damit eine Methode überschrieben werden kann.
virtual (oder abstract)
Warum beginnen viele Interfaces in C# mit I (z.B. IComparable)?
Konvention zur Kennzeichnung als Interface
Wie heisst das schrittweise Ausführen eines Programms im Debugger (z.B. F10/F11)?
Step-by-step / Schrittweises Debuggen (Stepping)
Wie heisst es, wenn mehrere Methoden gleich heissen, aber unterschiedliche Parameter haben?
Overloading (Methodenüberladung)
Standard-Zugriffsmodifikator für Felder/Methoden innerhalb einer Klasse (wenn nichts angegeben ist).
private
Schlüsselwort in der abgeleiteten Klasse, um eine virtual-Methode zu überschreiben.
override
Nenne einen Unterschied: abstrakte Klasse vs Interface (klassisch).
Abstrakte Klasse kann Zustand/Felder + Konstruktor haben; Interface definiert primär einen Vertrag
Du siehst denselben Codeblock in mehreren Methoden. Wie heißt das typische Qualitätsproblem?
Code-Duplikation (Duplicate Code)
Beziehung: "hat-ein" statt "ist-ein" (z.B. Auto hat Motor).
Komposition (bzw. Aggregation)
Wozu dient ein Konstruktor?
Initialisiert ein Objekt beim Erzeugen (Startzustand setzen)
Begriff: Ein Dog wird in einer Variable vom Typ Animal gespeichert.
Upcasting
Was passiert, wenn eine Klasse ein Interface implementiert, aber eine geforderte Methode fehlt?
Compile-Error (Klasse muss Member implementieren oder selbst abstract sein)
Du gibst einer Variable absichtlich einen aussagekräftigen Namen statt x oder tmp. Wie nennt man das Prinzip?
Sprechende Namen / Meaningful Names
4 OOP-Prinzipien – nenne zwei davon.
Kapselung, Vererbung, Polymorphie, Abstraktion
Schreib eine Auto-Property für eine ganzzahlige Age-Eigenschaft.
public int Age { get; set; }
Mini-Code:
Animal a = new Dog();
a.Speak();
Wann ist das Ergebnis "dog", obwohl a vom Typ Animal ist?
Wenn Speak() in Animal virtual ist und Dog sie mit override überschreibt (dynamischer Dispatch)
Warum hilft ein Interface bei Testbarkeit?
Man kann Abhängigkeiten mocken/stubben (Dependency Injection / Entkopplung)
Eine Methode macht viel zu viel (liest Input, rechnet, speichert, formatiert Output). Wie nennt man das "Code-Smell"-Problem?
God Method / Long Method (zu grosse Methode)