Impressum
< Index

Klassen

In der objektorientierten Programmierung
Um dies zu Erreichen werden Klassen definiert, in welchen man die Daten und Methoden definiert.
Von jeder Klasse können beliebig viele Objekte zur Laufzeit erzeugt werden.
Eine Klasse besteht aus
Zugriffsrecht
Datentypen
Jedes Attribut, jeder Parameter einer Methode und jede Methode, die ein Ergebnis zurückliefert, hat einen Datentyp. Diese können z.B. sein.

Klassendiagramm

Die Darstellung einer Klasse in UML erfolgt dreigeteilt:
Rechteck
+ breite : int
+ höhe : int
+ berechne_Fläche() : int
+ berechne_Umfang() : int

Der Konstruktor

Der Konstruktor wird im UML-Klassendiagramm als Methode dargestellt, welche den gleichen Namen wie die Klasse hat.
Der Konstruktor ist aber keine normale Methode, sondern er dient dazu Objekte der Klasse zu erzeugen.
Ist kein Konstruktor im UML-Diagramm angegeben, so gibt es implizit einen Konstruktor ohne Parameter.
Die Klasse Rechteck oben hat keinen Konstruktor im Klassendiagramm, somit kann man aber Objekte mit dem Konstruktor Rechteck() erzeugen.
Erweitert man diese Klasse wie im folgenden Klassendiagramm, so hat sie zwei Konstruktoren. Man kann jetzt Rechtecksobjekte mit r1=Rechteck() oder r2=Rechteck(2,5) erzeugen.
Die Aufgabe des Konstruktors ist es alle Attribut zu initialisieren, d.h. allen Attributen gültige Startwerte zuzuweisen.
In der Klasse Rechteck kann der Konstruktor der breite und höhe den Wert 0 zuweisen, wenn keine Parameter übergeben wurden oder er kann breite=b und höhe=h setzen, wenn Parameter mit übergeben wurden.
Rechteck
+ breite : int
+ höhe : int
+ Rechteck()
+ Rechteck(b:int, h:int )
+ berechne_Fläche() : int
+ berechne_Umfang() : int
Diese Klasse hat 2 Konstruktoren,
einen mit 0 und einen mit 2 Parametern

Aufgaben

  1. Es werden Objekte der Klasse Rechteck erzeugt.
    Ordnen Sie die Begriffe Klasse, Attribut, Attribut-Wert, Methode und Objektname
    den folgenden Begriffen und Werten zu:
  2. Für eine Adressverwaltung soll eine Klasse Person erstellt werden.
    Überlegen Sie, welche Attribute nötig sind und geben Sie ein UML-Klassendiagramm an, in welchem alle Attribute mit der Sichtbarkeit public angegeben sind.
    Methoden sind keine verlangt.
  3. Gegeben ist folgende Klasse:
    Konto
    - Saldo:float
    - Kontonummer:int
    + Konto(kontonummer:int)
    + getSaldo():float
    + getKontonummer():int
    + einzahlen(x:float)
    + abheben(x:float)
    Welche Attribute muss der Konstruktor initialisieren?
    Welche Funktionen haben die Methoden?
    Warum kann man vom Hauptprogramm nicht direkt auf das Saldo der Kontoobjekte zugreifen?
  4. Wir verwenden das Klassendiagramm aus der vorherigen Aufgabe weiter.
    Welche Methoden müssen nacheinander aufgerufen werden, dass ein neues Konto mit der Kontonummer 0815 angelegt wird und darauf 2000€ eingezahlt, dann der Kontostand abgerufen wird und anschließend 100€ abgehoben werden?