LU05a - Eigene Datentypen

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 ();
}

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 mit public 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.

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:

public class Adresse {
  String strasse;
  int hausnummer;
  String ort;
  int postleitzahl;
}
 
public class Clubmitglied {
  String name;
  String vorname;
  Adresse adresse = new Adresse();
  int eintrittsjahr;
  int geburtsjahr;
  boolean ehrenmitglied;
}

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

  • modul/archiv/m319/learningunits/lu05/lu05a-datentypen.txt
  • Zuletzt geändert: 2024/03/28 14:07
  • von 127.0.0.1