📘 Lernziele C# – Kompakte, aber detaillierte Zusammenfassung¶
1. kennen die primitiven Datentypen in C#¶
Erklärung:
Primitive Datentypen sind die grundlegenden Datentypen in C#. Sie speichern einfache Werte.
-
int= ganze Zahl -
float= Kommazahl (mitfam Ende) -
double= Kommazahl (doppelte Genauigkeit) -
char= einzelnes Zeichen (in') -
string= Zeichenkette (in") -
bool= wahr/falsch
Codebeispiel:
int alter = 18;
float note = 5.5f;
double pi = 3.14159;
char buchstabe = 'A';
string name = "Timo";
bool istVolljaehrig = true;
Quiz: Welcher Typ für Temperatur? Ja/Nein-Frage? Alter?
✅ Antwort: Temperatur = float/double, Ja/Nein = bool, Alter = int.
2. implementieren in eigenen Programmen eindimensionale Arrays¶
Erklärung:
Ein Array speichert mehrere Werte vom gleichen Typ. Der Index beginnt bei 0.
Codebeispiel:
Quiz: Wie greifst du auf das 3. Element von zahlen zu?
✅ Antwort: zahlen[2].
3. wenden Kontrollstrukturen (Sequenz, Iteration, Selektion) korrekt in eigenen Programmen an¶
Erklärung:
-
Sequenz: Code läuft Schritt für Schritt.
-
Iteration: Schleifen (
for,while). -
Selektion: Bedingungen (
if,switch).
Codebeispiel:
for (int i = 0; i < 3; i++) {
if (i % 2 == 0) Console.WriteLine("Gerade");
else Console.WriteLine("Ungerade");
}
Quiz: Was gibt die Schleife für i = 0..2 aus?
✅ Antwort: „Gerade“, „Ungerade“, „Gerade“.
4. erläutern den Unterschied zwischen Wertübergabe und Referenzübergabe (Call by value und Call by reference)¶
Erklärung:
-
Call by Value: Es wird nur eine Kopie übergeben.
-
Call by Reference: Adresse wird übergeben → Methode kann Original verändern.
Codebeispiel:
void MachZehn(int x) { x = 10; }
void MachZehnRef(ref int x) { x = 10; }
int a = 5;
MachZehn(a); // a bleibt 5
MachZehnRef(ref a); // a wird 10
Quiz: Warum braucht ref ein Schlüsselwort?
✅ Antwort: Damit klar ist, dass Original verändert werden darf.
5. erläutern die Bestandteile der Main-Methode in C#¶
Erklärung:
-
static: gehört Klasse, kein Objekt nötig. -
void: keine Rückgabe. -
string[] args: Kommandozeilenargumente.
Codebeispiel:
Quiz: Was bedeutet static?
✅ Antwort: Main-Methode kann ohne Objekt aufgerufen werden.
6. lesen Daten von der Konsole ein und geben diese formatiert auf der Konsole aus¶
Erklärung:
-
Eingabe mit
Console.ReadLine(). -
Ausgabe mit
Console.WriteLine().
Codebeispiel:
Console.Write("Gib dein Alter ein: ");
int alter = int.Parse(Console.ReadLine());
Console.WriteLine($"Du bist {alter} Jahre alt.");
Quiz: Was macht int.Parse(Console.ReadLine())?
✅ Antwort: Wandelt die Eingabe in eine ganze Zahl um.
7. erklären die Überladung von Methoden anhand der Methodensignatur und können dieses Konzept anwenden¶
Erklärung:
Gleicher Name, unterschiedliche Parameter.
Codebeispiel:
Quiz: Welche Methode bei Add(2.5, 3.5)?
✅ Antwort: Die mit double.
8. kennen das Paradigma des objektorientierten Ansatzes und erläutern an Beispielen, welche prinzipiellen Unterschiede gegenüber dem prozeduralen Ansatz bestehen¶
Erklärung:
-
Prozedural: Daten + Funktionen getrennt.
-
OOP: Daten + Methoden in Objekten.
Beispiel:
Prozedural: double KreisFlaeche(double r)
OOP: kreis.Radius = 5; kreis.Flaeche();
Quiz: Vorteil von OOP?
✅ Antwort: Strukturierter, wiederverwendbar, leichter erweiterbar.
9. erläutern das Schlüsselwort "this" und wenden dieses korrekt an¶
Erklärung:
this = aktuelles Objekt.
Codebeispiel:
class Auto {
string marke;
public Auto(string marke) {
this.marke = marke; // unterscheidet Feld von Parameter
}
}
Quiz: Wozu dient this?
✅ Antwort: Um Felder vom Parameter mit gleichem Namen zu unterscheiden.
10. erläutern die Bedeutung und die Kernidee der Datenkapselung und des Geheimnisprinzips¶
Erklärung:
-
Daten werden
private. -
Zugriff nur über
publicMethoden/Eigenschaften.
Codebeispiel:
Quiz: Warum ist saldo privat?
✅ Antwort: Schutz → niemand kann direkt ändern.
11. erläutern die Unterschiede zwischen Instanz- und Klassenvariablen¶
Erklärung:
-
Instanzvariablen: jedes Objekt hat eigene.
-
Klassenvariablen: mit
static, für alle gleich.
Codebeispiel:
Quiz: Was passiert mit anzahl, wenn 3 Personen erzeugt werden?
✅ Antwort: Es wird 3 → zählt alle Objekte.
12. kennen den Aufbau und die Syntax eines UML-Klassendiagramms¶
Erklärung:
-
+= public,-= private. -
Attribute:
- name: string. -
Methoden:
+ Add(x:int):int.
Quiz: Was bedeutet +?
✅ Antwort: public.
13. interpretieren Attribute und Operationen eines Klassendiagramms¶
Erklärung:
-
Attribute = Eigenschaften (Felder).
-
Operationen = Methoden (Funktionen).
Quiz: Was ist + Alter: int?
✅ Antwort: Öffentliches Attribut „Alter“ vom Typ int.
14. erklären die Bedeutung von Klassenattributen und Klassenmethoden¶
Erklärung:
Mit static → gehören der Klasse.
Codebeispiel:
Quiz: Muss man für Pi ein Objekt erstellen?
✅ Antwort: Nein.
15. implementieren Klassendiagramme (Attribute und Operationen ohne Beziehungen) als C#-Programm mit Feldern, Eigenschaften und Methoden sowie korrekter Sichtbarkeit¶
Codebeispiel (UML → Code):
class Auto {
public string Marke { get; set; }
public void Fahren() { Console.WriteLine("Brumm"); }
}
Quiz: Unterschied Feld vs. Property?
✅ Antwort: Property = kontrollierter Zugriff.
16. erläutern die Bedeutung sowie Anwendung von Konstruktoren und setzen diese Konzepte in C# um¶
Erklärung:
Konstruktor = spezielle Methode, wird beim Erstellen eines Objekts ausgeführt.
Codebeispiel:
Quiz: Wann wird Konstruktor aufgerufen?
✅ Antwort: Beim new.
17. wenden Konstruktoren-Verkettung sowie -Überladung sinnvoll an¶
Codebeispiel:
class Auto {
public string Marke { get; set; }
public Auto() : this("Unbekannt") {}
public Auto(string m) { Marke = m; }
}
Quiz: Was macht : this("Unbekannt")?
✅ Antwort: Ruft anderen Konstruktor auf.
18. initialisieren Objekte mittels Objekt-Initialisierer¶
Codebeispiel:
Quiz: Vorteil?
✅ Antwort: Schnelle Initialisierung ohne extra Konstruktor.