Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
faecher:informatik:oberstufe:java:objektorientierung:uml:start [06.05.2021 14:57] – [Klassenvariablen] sbel | faecher:informatik:oberstufe:java:objektorientierung:uml:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== UML Klassendiagramme ====== | ||
- | Eine gute Möglichkeit | ||
- | UML ist eine Abkürzung für " | ||
- | |||
- | Klassen bestehen drei Teilen: | ||
- | |||
- | * Klassenname | ||
- | * Eigenschaften (auch Attribute oder Instanzvariablen) | ||
- | * Methoden | ||
- | |||
- | Aus einer Klasse können wir **Objekte** erzeugen, man spricht von " | ||
- | |||
- | * Die **Attribute** einer Klasse beschreiben den //Zustand// eines Objekts, wie z.B. Name und Gewicht eines Hundes. | ||
- | * Die **Methoden** einer Klasse definieren das // | ||
- | |||
- | In einem UML Klassendiagramm werden die drei Bestandteile durch waagerechte Striche getrennt. Für das Hunde-Beispiel sieht das Klassendiagramm so aus: | ||
- | |||
- | |||
- | |||
- | |||
- | {{ : | ||
- | |||
- | |||
- | * Im oberen Feld steht der Klassenname (Hund). | ||
- | * Darunter folgen die Klassen-Attribute. Den Datentyp der Attribute schreibt man durch einen Doppelpunkt getrennt hinter den jeweiligen Attributs-Namen. | ||
- | * Die Methoden werden mit ihrer Parameterliste und ihrem Rückgabewert im unteren Feld des UML Diagramms angegeben. Der Datentyp des Rückgabewerts einer Methode steht dabei hinter dem Doppelpunkt. | ||
- | |||
- | ===== Vorzeichen? ===== | ||
- | |||
- | Den Attributen können verschiedene Zeichen vorangestellt sein: '' | ||
- | |||
- | Der Konstruktor wird mit einem '' | ||
- | |||
- | Instanz-Variablen werden für gewöhnlich, | ||
- | |||
- | Solche " | ||
- | |||
- | Attribute und Methoden, denen ein Pluszeichen '' | ||
- | |||
- | Darüber hinaus gibt es Attribute und Methoden, die als protected definiert werden können, diese werden im UML Diagramm durch eine vorangestellte Raute ''#'' | ||
- | |||
- | ===== Getter/ | ||
- | |||
- | |||
- | Neben der Methode " | ||
- | |||
- | < | ||
- | myDog = new Hund(5, | ||
- | myDog-> | ||
- | myDog-> | ||
- | myDog-> | ||
- | myDog-> | ||
- | myDog-> | ||
- | |||
- | </ | ||
- | |||
- | ===== Klassenvariablen ===== | ||
- | |||
- | Alle bisherigen Attribute waren Instanzvariablen. Jede Instanz der Hunde-Klasse speichert die Werte ihrer Instanzvariablen | ||
- | |||
- | Wenn wir nun beispielsweise die Zahl der erzeugten Hunde-Objekte zählen wollen, haben wir ein Problem: Wir können zwar Flöhe auf jedem Hund zählen, haben aber keinen gemeinsamen Zähler für alle Objekte, den jede Instanz lesen und schreiben kann. | ||
- | |||
- | Wir benötigen also eine Integer-Variable, | ||
- | |||
- | In eine UML Diagramm werden Klassenvariablen mit Hilfe eines Unterstrichs gekennzeichnet: | ||
- | |||
- | {{ : | ||
- | |||
- | |||
- | |||
- | Los! Lass uns das Klassendiagramm von oben um eine Klassenvariable, |