CS_LEVEL_1_SOLUTION - OnlyCook/abitur-elite-code GitHub Wiki

Level 1 – Musterlösung: Klasse Tier Implementieren

Lösung

public class Tier
{
    private string name;
    private int alter;
 
    public Tier(string name, int alter)
    {
        this.name = name;
        this.alter = alter;
    }
}

Erklärung

Klasse definieren

Eine Klasse ist der Bauplan für Objekte. Mit public class Tier wird eine öffentlich zugängliche Klasse namens Tier definiert. Alles, was zur Klasse gehört – Attribute und Methoden – steht innerhalb der geschweiften Klammern { }.

public class Tier
{
    // Inhalt der Klasse
}

Attribute (Felder)

Attribute speichern den Zustand eines Objekts. Im UML-Klassendiagramm sind sie mit einem - markiert, was private bedeutet – sie sind also nur innerhalb der Klasse direkt zugänglich und von außen nicht sichtbar. Das ist ein grundlegendes Prinzip der Datenkapselung.

private string name;
private int alter;

Java vs. C#: Im Diagramm steht String (großgeschrieben) – das ist Java-Notation. In C# verwendet man stattdessen string (kleingeschrieben). int ist in beiden Sprachen identisch.

UML-Symbol Bedeutung C#-Schlüsselwort
- privat private
+ öffentlich public
# geschützt protected

Konstruktor

Ein Konstruktor ist eine spezielle Methode, die automatisch aufgerufen wird, wenn ein neues Objekt mit new erstellt wird. Er trägt immer denselben Namen wie die Klasse und hat keinen Rückgabetyp.

Hier nimmt der Konstruktor zwei Parameter entgegen (name und alter) und weist sie den gleichnamigen Attributen der Klasse zu:

public Tier(string name, int alter)
{
    this.name = name;
    this.alter = alter;
}

Das Schlüsselwort this ist wichtig: Es verweist auf das aktuelle Objekt und unterscheidet so das Attribut der Klasse (this.name) vom Parameter des Konstruktors (name). Ohne this würde sich der Ausdruck name = name nur auf den Parameter beziehen – das Attribut bliebe leer.


Vom Diagramm zum Code

Das UML-Klassendiagramm gibt die Struktur der Klasse vor. Die Überführung folgt einem klaren Schema:

UML-Diagramm C#-Code
- name : String private string name;
- alter : int private int alter;
+ Tier(name : String, alter : int) public Tier(string name, int alter)

Das Diagramm zeigt Java-Notation (wie im Abitur üblich). Im Code selbst wird jedoch immer C# erwartet – der einzige praktische Unterschied bei diesem Level ist Stringstring.