Datentyp: Unterschied zwischen den Versionen
Marius (Diskussion | Beiträge) (→Primitive Datentypen) |
K (→Objektdatentypen) |
||
(16 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | + | '''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 [[Methode | Methoden]] und [[Operator | Operatoren]]. | |
− | + | ||
− | + | Zu den Datentypen in [[Java]] gehört die Unterscheidung von '''primitiven Datentypen''' und '''Objektdatentypen'''. | |
− | {| class = "wikitable" width=100% align = "center" | + | = 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): | ||
+ | {| class = "wikitable" width=100% align = "center" | ||
! Datentyp!! Größe!! Wertebereich | ! Datentyp!! Größe!! Wertebereich | ||
|- | |- | ||
Zeile 23: | Zeile 27: | ||
|[[Double | double]] || 64 Bit || +/-4,9*10<sup>-324</sup> ... +/-1,7*10<sup>+308</sup> | |[[Double | double]] || 64 Bit || +/-4,9*10<sup>-324</sup> ... +/-1,7*10<sup>+308</sup> | ||
|} | |} | ||
+ | |||
+ | Variablen primitiver Datentypen werden beim Aufrufen von Funktionen per [[Call by Value]] übergeben. Das heißt, dass Veränderungen der [[Parametervariable|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 [[Import | 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: | ||
+ | |||
+ | <source lang="java"> | ||
+ | public class Coordinate { | ||
+ | public double x; | ||
+ | public double y; | ||
+ | /* Konstruktoren und Methoden * | ||
+ | * [...] */ | ||
+ | } | ||
+ | </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"> | ||
+ | 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; | ||
+ | } | ||
+ | } | ||
+ | </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 * | ||
+ | * [...] */ | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | = Datenstrukturen = | ||
+ | |||
+ | Wie komplexe Datenstrukturen zusammengesetzt und verwendet werden können, findet man in ihren eigenen entsprechenden Artikeln: | ||
+ | |||
+ | * [[Baum]] | ||
+ | * [[Liste]] | ||
+ | * [[Heap]] | ||
+ | |||
+ | 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. |
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.
Inhaltsverzeichnis
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.