faecher:informatik:oberstufe:java:objektorientierung:uml:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:java:objektorientierung:uml:start [06.05.2021 11:59] sbelfaecher:informatik:oberstufe:java:objektorientierung:uml:start [07.10.2023 11:17] (aktuell) – [Getter/Setter] Marco Kuemmel
Zeile 4: Zeile 4:
 UML ist eine Abkürzung für "Unified Modeling Language". UML ist eine Abkürzung für "Unified Modeling Language".
  
-Klassen bestehen drei Teilen:+Klassen bestehen aus drei Teilen:
    
   * Klassenname   * Klassenname
Zeile 30: Zeile 30:
  
 Den Attributen können verschiedene Zeichen vorangestellt sein: ''-'', ''+'', ''C'' und (nicht im Beispiel) ''#''. Den Attributen können verschiedene Zeichen vorangestellt sein: ''-'', ''+'', ''C'' und (nicht im Beispiel) ''#''.
 +
 +Der Konstruktor wird mit einem ''C'' markiert.
  
 Instanz-Variablen werden für gewöhnlich, um sie gegen Manipulation zu schützen, als "von außen nicht sichtbar", also als "privat" deklariert. Dieses Vorgehen heißt **Kapselung**. Instanz-Variablen werden für gewöhnlich, um sie gegen Manipulation zu schützen, als "von außen nicht sichtbar", also als "privat" deklariert. Dieses Vorgehen heißt **Kapselung**.
  
-Solche "preivaten" Attribute und Methoden werden mit einem Minuszeichen ''-'' gekennzeichnet.+Solche "privaten" Attribute und Methoden werden mit einem Minuszeichen ''-'' gekennzeichnet.
  
 Attribute und Methoden, denen ein Pluszeichen ''+'' vorangestellt ist, sind als public (öffentlich) deklariert, auf diese kann man also von außen zugreifen. Attribute und Methoden, denen ein Pluszeichen ''+'' vorangestellt ist, sind als public (öffentlich) deklariert, auf diese kann man also von außen zugreifen.
Zeile 46: Zeile 48:
 <code> <code>
 myDog = new Hund(5,36,"Emil") myDog = new Hund(5,36,"Emil")
-myDog->geName() // "Emil" +myDog.getName() // "Emil" 
-myDog->setName("Higgs"+myDog.setName("Higgs"
-myDog->getName() // "Higgs" +myDog.getName() // "Higgs" 
-myDog->name // FEHLER +myDog.name // FEHLER 
-myDog->name = "Higgs" // FEHLER+myDog.name = "Higgs" // FEHLER
  
 </code> </code>
 +
 +===== Klassenvariablen =====
 +
 +Alle bisherigen Attribute waren Instanzvariablen. Jede Instanz der Hunde-Klasse speichert die Werte ihrer Instanzvariablen  in einem eigenen Speicherbereich, zwei Instanzen der Hunde-Klasse können also nicht gegenseitig auf die Werte ihrer Instanzvariablen zugreifen.
 +
 +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, auf die alle Hunde-Instanzen zugreifen können. Eine solche Variable heißt  **Klassenvariable**, in Java wird sie mittels des Schlüsselworts ''static'' definiert.
 +
 +In eine UML Diagramm werden Klassenvariablen mit Hilfe eines Unterstrichs gekennzeichnet:
 +
 +{{ :faecher:informatik:oberstufe:java:objektorientierung:uml:diagram_2021-05-06_12-08-49.png  }}  
 +
  
  
 +Los! Lass uns das Klassendiagramm von oben um eine Klassenvariable, mit der wir die Anzahl der erzeugten Hunde zählen können ergänzen.
  • faecher/informatik/oberstufe/java/objektorientierung/uml/start.1620295194.txt.gz
  • Zuletzt geändert: 06.05.2021 11:59
  • von sbel