Eine Variable kann man sich als Speicherzelle vorstellen die folgendes enthält:
- Einen Namen unter durch den die Variable im Programm angesprochen wird.
- Die Adresse einer Speicherzelle in die Daten geschrieben bzw. gelesen werden können
- Einen Datentyp der beschreibt was für Art Daten in der Speicherzelle hinterlegt sind
Eine Variable enthält also keine Daten, sondern nur eine Referenz auf die Adresse im Speicher in dem sich dann die Daten befinden.
Dies hat den Vorteil das bei einer Kopie der Daten nicht die gesamten Daten sondern nur die Adresse kopiert werden muss.
primitive Datentypen
boolean
Wahrheitswert. Entweder true oder false.
byte
Ganze Zahlen zwischen -128 und 127 (8 Bit).
short
Ganze Zahlen zwischen -32768 und 32767 (16 Bit).
int
Ganze Zahlen zwischen -2147483648 und 2147483647 (32 Bit).
long
Ganze Zahlen zwischen -9223372036854775808 und 9223372036854775807 (64 Bit).
char
Einzelne Zeichen des Unicode-Zeichensatzes zwischen ‚\u0000‘ und ‚\uffff‘ (16 Bit).
float
Fließkommawert nach IEEE 754 zwischen ca. 1.4E-45 und 3.4E38 (Einfache Genauigkeit, 32 Bit).
double
Fließkommawert nach IEEE 754 zwischen ca. 4.9E-324 und 1.8E308 (Doppelte Genauigkeit, 64 Bit).
Aufzählungstypen
enum speichert eine beliebige Anzahl von unveränderlichen Werten oder Wertpaaren.
Beispiel:
public class Test1 { public static void main( String[] args ) { System.out.println( Farben.ROT.hexwert() ); } } enum Farben // Enum-Typ { ROT("#FF0000"), GRUEN("#00FF00"), BLAU("#0000FF"); private final String farbwert; Farben(String farbwert) { this.farbwert = farbwert; } // Konstruktor public String hexwert() { return farbwert;} // Rückgabe-Methode }
Objekt
Ein Objekt enthält im Normalfall Variablen sowie Methoden um diese zu manipulieren. Ein Objekt wird aus einer Objektbeschreibung, Klasse genannt, gebaut. Diese Objektbeschreibung enthält neben den Daten und Methoden, einen oder mehrere Konstruktoren, die das Objekt erzeugen und z.B. festlegen welche Startwerte die Variablen enthalten
package start; public class StarteRechenobjekt { public static void main(String[] args) { Rechenobjekt rechner = new Rechenobjekt(10); System.out.println(rechner.addiere(20)); System.out.println(rechner.subtrahiere(30)); System.out.println(rechner.multipliziere(20)); System.out.println(rechner.dividiere(20)); } } class Rechenobjekt { String ausgabe = "Das Ergebnis ist: "; int faktor; Rechenobjekt(int zahl){ this.faktor = zahl; } String addiere(int zahl) { int summe = zahl + this.faktor; String ergebnis = this.ausgabe + Integer.toString(summe); return ergebnis; } String subtrahiere(int zahl) { int differenz = zahl - faktor; String ergebnis = this.ausgabe + Integer.toString(differenz); return ergebnis; } String multipliziere(int zahl) { int produkt = zahl * faktor; String ergebnis = this.ausgabe + Integer.toString(produkt); return ergebnis; } String dividiere(int zahl) { int quotient = zahl / faktor; String ergebnis = this.ausgabe + Integer.toString(quotient); return ergebnis; } }