Datentyp: Unterschied zwischen den Versionen

Aus EINI
Wechseln zu: Navigation, Suche
(Beispiel)
K (Objektdatentypen)
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 31: Zeile 31:
  
 
= Objektdatentypen =
 
= Objektdatentypen =
 +
 +
==Erläuterung==
  
 
Alle nicht primitiven Datentypen werden in Java durch ihre eigene [[Klasse]] definiert. Diese sind daher immer eine Kombination aus diversen primitiven oder anderen Objektdatentypen. Wie diese Daten zusammengesetzt werden und was sie bedeuten, ist im Quellcode zu definieren und zu dokumentieren.
 
Alle nicht primitiven Datentypen werden in Java durch ihre eigene [[Klasse]] definiert. Diese sind daher immer eine Kombination aus diversen primitiven oder anderen Objektdatentypen. Wie diese Daten zusammengesetzt werden und was sie bedeuten, ist im Quellcode zu definieren und zu dokumentieren.
Zeile 36: Zeile 38:
 
Zudem gibt es viele nützliche Objektdatentypen in der Java-Standard-Bibliothek (z.B. [[String]] oder [[Array]]), die nicht zusätzlich in das Programm [[Import | importiert]] werden müssen, sondern immer zur Verfügung stehen.
 
Zudem gibt es viele nützliche Objektdatentypen in der Java-Standard-Bibliothek (z.B. [[String]] oder [[Array]]), die nicht zusätzlich in das Programm [[Import | importiert]] werden müssen, sondern immer zur Verfügung stehen.
  
== Beispiel ==
+
== Beispiele ==
  
Eine Position auf der 2-Dimensionalen Ebene ist durch zwei '''double''' zu repräsentieren. Entsprechend wird dem ersten der '''double''' die Semantik der '''x'''-Koordinate und dem zweiten die Semantik der '''y'''-Koordinate zugewiesen. Dies kann in Java z.B. folgendermaßen geschehen:
+
1. Eine Position auf der 2-Dimensionalen Ebene ist durch zwei '''double''' zu repräsentieren. Entsprechend wird dem ersten der '''double''' die Semantik der '''x'''-Koordinate und dem zweiten die Semantik der '''y'''-Koordinate zugewiesen. Dies kann in Java z.B. folgendermaßen geschehen:
  
 
<source lang="java">
 
<source lang="java">
Zeile 48: Zeile 50:
 
}
 
}
 
</source>
 
</source>
 +
 +
2. Die folgende [[Klasse]] kann ein Bankkonto repräsentieren. Die [[Methode|Methoden]] dieser Klasse können z.B. aus der Bank und Kontonummer eine IBAN generieren, die zurückgegeben wird. Als Typen der Attribute wurden hier [[String|Strings]] gewählt, da man mit den Nummern eines Bankkontos sowieso nicht rechnen muss und eine Aneinanderreihung der Nummern für die IBAN als String einfacher zu programmieren ist.
  
 
<source lang="java">
 
<source lang="java">
 
public class Bankaccount {
 
public class Bankaccount {
     public int accountNumber;
+
     private String accountNumber;
     public int bankNumber;
+
     private String bankNumber;
     public int bic;
+
     private String bic;
 
      
 
      
     public long balance;
+
     private long balance;
 +
    /* Konstruktoren und Methoden *
 +
    * [...]                      */
 +
    public String getIBAN(){
 +
        return this.bankNumber + this.accountNumber;
 +
    }
 +
}
 +
</source>
 +
 
 +
3. Ein Student für eine Datenbank ließe sich folgendermaßen programmieren:
 +
 
 +
<source lang="java">
 +
public class Student {
 +
    private String name;
 +
    private int matriculationNumber;
 +
    private int semester;
 +
    private String faculty;
 +
 
 
     /* Konstruktoren und Methoden *
 
     /* Konstruktoren und Methoden *
 
     * [...]                      */
 
     * [...]                      */

Aktuelle Version vom 26. Juli 2016, 15:16 Uhr

Datentyp ist die Bezeichnung für die Interpretation und Semantik einer Menge von Daten. Zu einem Datentyp gehören Informationen wie Größe, Struktur und erlaubte Methoden und Operatoren.

Zu den Datentypen in Java gehört die Unterscheidung von primitiven Datentypen und Objektdatentypen.

Primitive Datentypen

Diese Datentypen werden als primitiv bezeichnet, da sie die grundlegenden Bausteine für andere Datentypen sind. Sie alle repräsentieren numerische Werte.

Die Größe, Struktur und Interpretation der primitiven Datentypen ist im Java-Standard vorgegeben (siehe: https://de.wikibooks.org/wiki/Java_Standard:_Primitive_Datentypen):

Datentyp Größe Wertebereich
boolean undefiniert true / false
char 16 Bit 0 ... 65.535
byte 8 Bit -128 ... 127
short 16 Bit -32.768 ... 32.767
int 32 Bit -2.147.483.648 ... 2.147.483.647
long 64 Bit -263 bis 263-1
float 32 Bit +/- 1,4*10-45 ... +/-3,4*10+38
double 64 Bit +/-4,9*10-324 ... +/-1,7*10+308

Variablen primitiver Datentypen werden beim Aufrufen von Funktionen per Call by Value übergeben. Das heißt, dass Veränderungen der Parametervariablen einer Funktion keinen Einfluss auf die übergebenen Variablen haben.

Objektdatentypen

Erläuterung

Alle nicht primitiven Datentypen werden in Java durch ihre eigene Klasse definiert. Diese sind daher immer eine Kombination aus diversen primitiven oder anderen Objektdatentypen. Wie diese Daten zusammengesetzt werden und was sie bedeuten, ist im Quellcode zu definieren und zu dokumentieren.

Zudem gibt es viele nützliche Objektdatentypen in der Java-Standard-Bibliothek (z.B. String oder Array), die nicht zusätzlich in das Programm importiert werden müssen, sondern immer zur Verfügung stehen.

Beispiele

1. Eine Position auf der 2-Dimensionalen Ebene ist durch zwei double zu repräsentieren. Entsprechend wird dem ersten der double die Semantik der x-Koordinate und dem zweiten die Semantik der y-Koordinate zugewiesen. Dies kann in Java z.B. folgendermaßen geschehen:

public class Coordinate {
    public double x;
    public double y;
    /* Konstruktoren und Methoden *
     * [...]                      */
}

2. Die folgende Klasse kann ein Bankkonto repräsentieren. Die Methoden dieser Klasse können z.B. aus der Bank und Kontonummer eine IBAN generieren, die zurückgegeben wird. Als Typen der Attribute wurden hier Strings gewählt, da man mit den Nummern eines Bankkontos sowieso nicht rechnen muss und eine Aneinanderreihung der Nummern für die IBAN als String einfacher zu programmieren ist.

public class Bankaccount {
    private String accountNumber;
    private String bankNumber;
    private String bic;
    
    private long balance;
    /* Konstruktoren und Methoden *
     * [...]                      */
    public String getIBAN(){
        return this.bankNumber + this.accountNumber;
    }
}

3. Ein Student für eine Datenbank ließe sich folgendermaßen programmieren:

public class Student {
    private String name;
    private int matriculationNumber;
    private int semester;
    private String faculty;

    /* Konstruktoren und Methoden *
     * [...]                      */
}

Datenstrukturen

Wie komplexe Datenstrukturen zusammengesetzt und verwendet werden können, findet man in ihren eigenen entsprechenden Artikeln:

Die Aufgabe eines Programmierers besteht jedoch meistens darin, aus den verschiedenen Datentypen und anderen Informationen seinen eigenen Datentyp zu basteln, der das Problem und die Lösungswege am besten repräsentiert.