Lernpfad:Objektorientierte Programmierung mit Java/Datentypen und Variablen: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 51: Zeile 51:
|}
|}
<references/>
<references/>
{{Rahmen|<small>Die Tabell ist eine angepasste Version der Tabelle von https://de.wikibooks.org/wiki/Java_Standard:_Primitive_Datentypen, welche unter der Lizenz [https://creativecommons.org/licenses/by-sa/3.0/deed.de Creative Commons Namensnennung – Weitergabe unter gleichen Bedingungen] bereitgestellt wird.</small>|Dicke=1}}
{{Rahmen|<small>Die Tabelle ist eine angepasste Version der Tabelle von https://de.wikibooks.org/wiki/Java_Standard:_Primitive_Datentypen, welche unter der Lizenz [https://creativecommons.org/licenses/by-sa/3.0/deed.de Creative Commons Namensnennung – Weitergabe unter gleichen Bedingungen] bereitgestellt wird.</small>|Dicke=1}}


Die Verwendung der einzelnen Datentypen inklusive Beispielen wird im [https://de.wikibooks.org/wiki/Java_Standard:_Primitive_Datentypen#Zeichen Wikibook ''Java Standard''] vorgestellt.
Die Verwendung der einzelnen Datentypen inklusive Beispielen wird im [https://de.wikibooks.org/wiki/Java_Standard:_Primitive_Datentypen#Zeichen Wikibook ''Java Standard''] vorgestellt.
Zeile 67: Zeile 67:
{{Aufgabe:End}}
{{Aufgabe:End}}


== Nichtprimitive Datentypen ==
== Nicht primitive Datentypen ==
Neben den primitiven Datentypen gibt es in Java noch andere Datentypen, die nicht fest in der Programmiersprache integriert sind - also ''nicht primitiv'' sind. Jede {{Pfad|Klassen und Objekte|Klasse}} ist ein solcher Datentyp. Beim Erstellen von Variablen werden sie genauso verwendet wie die primitiven Typen. Allerdings haben sie einige Besonderheiten, die in den Schritten {{Pfad|Objekte erstellen}} und {{Pfad|Referenzen}} genauer vorgestellt werden.  
Neben den primitiven Datentypen gibt es in Java noch andere Datentypen, die nicht fest in der Programmiersprache integriert sind - also ''nicht primitiv'' sind. Jede {{Pfad|Klassen und Objekte|Klasse}} ist ein solcher Datentyp. Beim Erstellen von Variablen werden sie genauso verwendet wie die primitiven Typen. Allerdings haben sie einige Besonderheiten, die in den Schritten {{Pfad|Objekte erstellen}} und {{Pfad|Referenzen}} genauer vorgestellt werden.  


Der am meisten verwendete nichtprimitive Datentyp ist <code>[[#Der Datentyp String|String]]</code>, also Texte beziehungsweise Zeichenketten.
Der am meisten verwendete nicht primitive Datentyp ist <code>[[#Der Datentyp String|String]]</code>, also Texte beziehungsweise Zeichenketten.


== Variablen ==
== Variablen ==
Zeile 76: Zeile 76:


=== Deklarieren und initialisieren ===
=== Deklarieren und initialisieren ===
Möchte man in Java eine Variable benutzten muss diese zunächst ''deklariert'' werden. ''Deklarieren'' bedeutet dem Computer zu sagen, dass er im verfügbaren Speicher einen Bereich reservieren soll, der ausreichend Platz für Daten des deklarierten Typs bietet. Der benötigte Speicherplatz jedes primitiven Typs ist in der Tabelle oben aufgeführt.
Möchte man in Java eine Variable benutzen, muss diese zunächst ''deklariert'' werden. ''Deklarieren'' bedeutet dem Computer zu sagen, dass er im verfügbaren Speicher einen Bereich reservieren soll, der ausreichend Platz für Daten des deklarierten Typs bietet. Der benötigte Speicherplatz jedes primitiven Typs ist in der Tabelle oben aufgeführt.


Bei der Deklaration kann der Variablen auch direkt ein Wert zugewiesen werden. Die Variable wird also mit einem Wert ''initialisiert''. Wird kein Initialwert explizit angegeben, dann reserviert Java auch keinen Speicherbereich für die Variable und die Variable hat keinen Wert (auch nicht <code>null</code>). Außer in Spezialfällen sollte daher bei der Deklaration auch direkt ein Initialwert mit angegeben werden.
Bei der Deklaration kann der Variablen auch direkt ein Wert zugewiesen werden. Die Variable wird also mit einem Wert ''initialisiert''. Wird kein Initialwert explizit angegeben, dann reserviert Java auch keinen Speicherbereich für die Variable und die Variable hat keinen Wert (auch nicht <code>null</code>). Außer in Spezialfällen sollte daher bei der Deklaration auch direkt ein Initialwert mit angegeben werden.
Zeile 135: Zeile 135:
'''Casting''' ist die Überführung eines Datentyps in einen anderen (z.B. <code>byte</code> zu <code>int</code>). Dies kann ''implizit'' oder ''explizit'' geschehen. Implizit bedeutet, dass Java automatisch eine Überführung vornimmt. Explizit bedeutet, dass du die Überführung im Programmtext ''explizit'' einprogrammiert.
'''Casting''' ist die Überführung eines Datentyps in einen anderen (z.B. <code>byte</code> zu <code>int</code>). Dies kann ''implizit'' oder ''explizit'' geschehen. Implizit bedeutet, dass Java automatisch eine Überführung vornimmt. Explizit bedeutet, dass du die Überführung im Programmtext ''explizit'' einprogrammiert.


Bei einigen Datentypen ist das ''Casten'' einfach, zum Beispiel von <code>short</code> zu <code>int</code>, da beide Typen ganze Zahlen darstellen und alle Zahlen die <code>short</code> speichern kann auch in <code>int</code> enthalten sind. Bei anderen Typen ist die Überführung nicht so klar, wie zum Beispiel bei <code>boolean</code> zu <code>char</code>. Für jeden dieser Fälle ist in Java klar vorgesehen, wie die Überführung stattfindet.
Bei einigen Datentypen ist das ''Casten'' einfach, zum Beispiel von <code>short</code> zu <code>int</code>, da beide Typen ganze Zahlen darstellen und alle Zahlen, die <code>short</code> speichern kann, auch in <code>int</code> enthalten sind. Bei anderen Typen ist die Überführung nicht so klar, wie zum Beispiel bei <code>boolean</code> zu <code>char</code>. Für jeden dieser Fälle ist in Java klar vorgesehen, wie die Überführung stattfindet.


Um ''explizit'' ein Casting durchzuführen schreibst du den Zieldatentyp (in den überführt wird) in runden Klammern vor den Ausgangswert:
Um ''explizit'' ein Casting durchzuführen, schreibst du den Zieldatentyp (in den überführt wird) in runden Klammern vor den Ausgangswert:
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
byte b = 42;
byte b = 42;
Zeile 159: Zeile 159:
</syntaxhighlight>
</syntaxhighlight>


Da eine Zeichenkette also ein {{Pfad|Klassen und Objekte|Objekt}} ist, besitzt jedes Textobjekt auch Methoden, die auf ihm aufgerufen werden können. Folgende Zeilen sind zum Beispiel korrekter Jacacode:
Da eine Zeichenkette also ein {{Pfad|Klassen und Objekte|Objekt}} ist, besitzt jedes Textobjekt auch Methoden, die auf ihm aufgerufen werden können. Folgende Zeilen sind unter anderem korrekter Javacode:
<syntaxhighlight lang="java">
<syntaxhighlight lang="java">
String text = new String("Hallo, Welt!");
String text = new String("Hallo, Welt!");
8.581

Bearbeitungen