Klasse: Unterschied zwischen den Versionen

Aus EINI
Wechseln zu: Navigation, Suche
Zeile 1: Zeile 1:
Eine Klasse ist die Beschreibung eines bestimmten Objekts. Sie ist der Bauplan für Objekte. Eine Klasse erzeugt Objekte aber nicht von sich aus.
+
Eine '''Klasse''' ist die Deklaration eines Datentyps. Sie dient dabei als Bauplan für [[Objekt | Objekte]] dieses Datentyps.  
  
 +
* Sie definiert den ''Aufbau'' der Objekte über [[Attribut | Attribute]].
 +
* Sie definiert den ''Instanziierungsprozess'' der Objekte über [[Konstruktor | Konstruktoren]].
 +
* Sie definiert die auf den Objekten ausführbaren ''Operationen'' über [[Methode | Methoden]].
  
=Synatx einer Klassendefinition=
+
Zudem kann eine Klasse noch von den Objekten unabhängige, [[static | statische]] Methoden und Attribute definieren, die die Klasse selbst ausführen kann.
  
==allgemein==
+
Eine Klasse mit einer statischen [[main]]-Methode wird entsprechend auch ''Hauptklasse'' genannt und definiert den Einstiegspunkt in ein lauffähiges Programm.
Um eine Klassedefiniton zu schreiben, wird nur das Schlüsselwort '''class''' und ein Name für die Klasse benötigt. Dabei wird ein Klasse meistens in drei Abschnitte geteilt.
+
  
 +
=Synatxdiagramm=
 +
 +
==Erklärung==
 +
Um eine Klassedefiniton 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.
  
 
<source lang="java">
 
<source lang="java">
Zeile 15: Zeile 21:
  
 
   //Beschreibung der Methoden
 
   //Beschreibung der Methoden
 
 
}
 
}
 
</source>
 
</source>
Zeile 21: Zeile 26:
 
===Attribute===
 
===Attribute===
  
 +
Attribute sind Variablen, die innerhalb eines Objektes existieren und für jede Instanz einer Klasse daher einzigartig sind. Eine Klasse, die z.B. ein Attribut <code>int value;</code> besitzt, beschreibt also Objekte, die einen Wert namens <code>value</code> haben. Jede Instanz dieser Klasse kann also seinen eigenen Wert besitzen. Traditionellerweise schützt man unkontrollieren Zugriff auf Attribute durch sogenannte [[setter]] und [[getter]], indem die Attribute als [[private | privat]] deklariert werden.
  
 
===Konstruktoren===
 
===Konstruktoren===
  
 +
[[Konstruktor | Konstruktoren]] definieren, wie ein Objekt instanziiert werden soll. Gibt man keinen Konstruktor an, so existiert der sog. [[Defaultkonstuktor]], welcher keinen Parameter erwartet und alle Attribute des Objektes mit '''0''' oder '''null''' initialisiert. Sobald jedoch ein Konstruktor deklariert wird, muss der [[Defaultkonstruktor]] explizit mit deklariert werden, wenn man ihn verwenden will.
  
 
===Methoden===
 
===Methoden===
 +
 +
[[Methode | Methoden]] definieren, was ein Objekt ''kann''. Ein Methodenname ist daher meist ein ''Verb''. Die Funktionalität einer Methode kann von einfachen Änderungen der Attribute ([[getter]]/[[setter]]), bis zu komplexen Berechnungen in Abhängigkeit des aktuellen Zustands eines Objektes gehen.

Version vom 30. Dezember 2015, 07:41 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, 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.

Synatxdiagramm

Erklärung

Um eine Klassedefiniton 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

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

Konstruktoren

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

Methoden

Methoden definieren, was ein Objekt kann. Ein Methodenname ist daher meist ein Verb. Die Funktionalität einer Methode kann von einfachen Änderungen der Attribute (getter/setter), bis zu komplexen Berechnungen in Abhängigkeit des aktuellen Zustands eines Objektes gehen.