LU05a - Eigene Datentypen
Deklaration
Eigene Datentypen können aus den bereits bekannten Datentypen zusammengesetzt werden.
Ein Clubmitglied weist z. B. die folgenden Attribute auf
Attribute | UML |
---|---|
Name, Vorname, Adresse, Ort: String | |
Postleitzahl, Eintrittsjahr, Geburtsjahr: int |
|
Ehrenmitglied: boolean |
In Java sieht dieser Datentyp wie folgt aus:
public class Clubmitglied { String name; String vorname; String strasse; int hausnummer; String ort; int postleitzahl; int eintrittsjahr; int geburtsjahr; boolean ehrenmitglied; }
Da es sich hier um eine Klasse handelt, muss diese Klasse auch in einem eignen File mit dem Namen der Klasse gespeichert werden. Für das Beispiel des Clubmitgliedes muss das die Klasse Clubmitgied.java sein.
Neue Clubmitglieder (Objekte) werden mit dem new
-Operator geschaffen. Dieser holt sich vom System (Heap) genügend Speicher, um die Attributwerte festhalten zu können:
public void run(){ Clubmitglied mitglied1 , mitglied2 , mitglied3 ; mitglied1 = new Clubmitglied (); mitglied2 = new Clubmitglied (); mitglied3 = new Clubmitglied (); }
Benennung
Auch für die Benennung von eigenen Datentypen haben sich Regeln eingebürgert.
- Der Name der eigene Datentypen ist gross geschrieben z.B.
Clubmitglied
und beginnt mitpublic class
- In der Regel beinhaltet oder ist der Namen eines eigenen Datentyps ein Nomen.
- Verwenden Sie ganze Wörter und vermeiden Sie Akronyme und Abkürzungen.
Verschachteln von Datentypen
Datentypen, welche wie oben beschrieben wurden, können nun genauso als Variable verwendet werden, wie alle anderen auch. Im folgenden Beispiel wird eine Adresse gleich bei einer Person als Datentyp eingesetzt:
Zugriff
Auf die Attribute ( name , vorname , …)
wird nun mit dem .
-Operator zugegriffen:
public void run(){ Clubmitglied mitglied; mitglied= new Clubmitglied (); mitglied.name = "Freimann"; mitglied.adresse.hausnummer = 10; System.out.println("Familienname: " + mitglied.name); System.out.println("Hausnummer: " + mitglied.adresse.hausnummer); }
© Kevin Maurizi, Philipp Gressly