Klasse: Unterschied zwischen den Versionen

Aus EINI
Wechseln zu: Navigation, Suche
(Attribute)
Zeile 31: Zeile 31:
 
siehe: [[Variable]]
 
siehe: [[Variable]]
  
Attribute sind Variablen, die innerhalb eines Objektes existieren und daher für jede Instanz einer Klasse einzigartig sind. Eine Klasse, die z.B. ein Attribut <code>int value;</code> besitzt, beschreibt Objekte, die einen Wert namens <code>value</code> haben. Jede Instanz dieser Klasse kann also seinen eigenen Wert besitzen. Traditionellerweise schützt man unkontrollierten Zugriff auf Attribute durch sogenannte [[setter]] und [[getter]], indem die Attribute als [[private | privat]] deklariert werden.
+
Attribute sind Variablen, die innerhalb eines Objektes existieren und daher für jede Instanz einer Klasse einzigartig sind. Eine Klasse <code>Foo</code>, die z.B. ein Attribut <code>int bar;</code> besitzt, beschreibt Objekte, die einen Wert namens <code>bar</code> haben. Jede Instanz dieser Klasse besitzt also sein eigenes <code>bar</code> mit einem eigenen Wert. Traditionellerweise schützt man unkontrollierten Zugriff auf Attribute durch sogenannte [[setter]] und [[getter]], indem die Attribute als [[private | privat]] deklariert werden.
  
 
===Konstruktoren===
 
===Konstruktoren===

Version vom 11. April 2016, 17:58 Uhr

Eine Klasse ist die Deklaration eines Datentyps. Sie dient dabei als Bauplan für Objekte dieses Datentyps.

  • Sie definiert den Aufbau der Objekte über Attribute.
  • Sie definiert den Instanziierungsprozess der Objekte über Konstruktoren.
  • Sie definiert die auf den Objekten ausführbaren Operationen über Methoden.

Zudem kann eine Klasse noch von den Objekten unabhängige, also statische, Methoden und Attribute definieren, die die Klasse selbst ausführen kann.

Eine Klasse mit einer statischen main-Methode wird entsprechend auch Hauptklasse genannt und definiert den Einstiegspunkt in ein lauffähiges Programm.

Syntaxdiagramm

Class declaration.png

Class body.png

Erklärung

Um eine Klassendefiniton zu schreiben, wird nur das Schlüsselwort class und ein Name für die Klasse benötigt. Dabei wird eine Klasse meistens in drei Abschnitte geteilt: Attribute, Konstruktoren und Methoden.

class Klassennamen {
  //Beschreibungen der Attribute

  //Beschreibung der Konstruktoren

  //Beschreibung der Methoden
}

Attribute

siehe: Variable

Attribute sind Variablen, die innerhalb eines Objektes existieren und daher für jede Instanz einer Klasse einzigartig sind. Eine Klasse Foo, die z.B. ein Attribut int bar; besitzt, beschreibt Objekte, die einen Wert namens bar haben. Jede Instanz dieser Klasse besitzt also sein eigenes bar mit einem eigenen Wert. Traditionellerweise schützt man unkontrollierten Zugriff auf Attribute durch sogenannte setter und getter, indem die Attribute als privat deklariert werden.

Konstruktoren

siehe: Konstruktor

Konstruktoren definieren, wie ein Objekt instanziiert werden soll. Gibt man keinen Konstruktor an, so existiert der sogenannte Defaultkonstuktor. Dieser erwartet keinen Parameter und initialisiert alle Attribute des Objektes mit 0 oder null. Sobald jedoch ein Konstruktor deklariert wird, muss der Defaultkonstruktor explizit mitdeklariert werden, wenn man ihn verwenden will.

Methoden

siehe: Methode

Methoden definieren, was ein Objekt kann. Ein Methodenname ist daher meist ein Verb. Methoden können auf einem Objekt aufgerufen werden, d.h. sie sind abhängig vom Zustand des Objektes, auf dem sie aufgerufen werden. Die Funktionalität einer Methode kann von einfachen Änderungen der Attribute (getter/setter) bis hin zu komplexen Berechnungen in Abhängigkeit vom aktuellen Zustand eines Objektes gehen.