Variablen und Datentypen © Jürgen Lederer, Michael Bösser
Veranschaulichung einer Variable d Z u g f l I a t A z S p - = T y B ( ) © Jürgen Lederer, Michael Bösser
Eigenschaften einer Variable Eine Variable ist eine Speicherzelle im Hauptspeicher, in die man eine Wert ablegen kann (Schreibzugriff) und später wieder abrufen kann (Lesezugriff) Java verwendet die Attributdeklaration um Speicherplatz zu reservieren um Konsistenzüberprüfungen vorzunehmen. © Jürgen Lederer, Michael Bösser
Variablendeklaration in Java Allgemein: Datentyp Bezeichner ; Art der Variable benötigten Speicher Name der Speicherzelle Regeln für gültige Bezeichner Beispiele: int Laenge; int Laenge, Breite; © Jürgen Lederer, Michael Bösser
Regeln für gültige Bezeichner Bezeichner können die Buchstaben a-z bzw. A-Z den Unterstrich _ die Ziffern 0-9 enthalten. Einschränkungen Umlaute sind erlaubt, Sonderzeichen nicht. Das erste Zeichen muss ein Buchstabe, ein Unterstrich oder das $ Zeichen sein. © Jürgen Lederer, Michael Bösser
© Jürgen Lederer, Michael Bösser Der Typ bool in Java Der Java-Typ bool Wertebereich (plattformunabhängig) true oder false (boolesche Literale) Binäre Operationen (Operand1 Operator Operand2) Operator Erklärung Beispiel == Gleichheit 7 == 8 ergibt false != Ungleichheit 5 != 5 ergibt false & logisches UND true & true ergibt true | logisches ODER false | false ergibt false ^ logisches XODER false ^ false ergibt true Unäre Operation (Operator Operand) ! Boolesche Negation ! true ergibt false. © Jürgen Lederer, Michael Bösser
Ganzzahlige Typen in Java Wertebereich (plattformunabhängig) Typ Kleinster Wert Größter Wert Speicherplatz byte 0 255 1 Byte short -32768 32767 2 Bytes int -2147483648 2147483647 4 Bytes long -9223372036854775808 9223372036854775807 8 Bytes char /u0000 (0) /uffff (65535) 2 Bytes. © Jürgen Lederer, Michael Bösser
Ganzzahlige Typen in Java Darstellung als IntegerLiteral 4 Darstellungsarten Dezimaldarstellung: 110 Oktaldarstellung: 0156 Hexadezimaldarstellung: 0x6E Literal von Typ long: 110L, 110l Zeichen Darstellung in einfachen Anführungszeichen Beispiel:‘A‘,‘B‘ Spezielle Zeichen mit vorangestelltem \ Beispiele \t (Tabulator) \n (neue Zeile) \udddd (Unicode). © Jürgen Lederer, Michael Bösser
Ganzzahlige Typen in Java Binäre Operationen (Operand1 Operator Operand2) Operator Erklärung Beispiel + Addition 5 + 6 ergibt 11 - Subtraktion 9 - 3 ergibt 6 * Multiplikation 10 * 15 ergibt 150 / Division 13 / 3 ergibt 4 % Modulo 20 % 7 ergibt 6 < Kleiner 3 < 5 ergibt true <= Kleiner gleich 3 <= 3 ergibt true > Größer 2 > 10 ergibt false >= Größer Gleich 5 >= 6 ergibt false == Gleich 3 == 3 ergibt true ! = Ungleich 5 != 5 ergibt false. © Jürgen Lederer, Michael Bösser
Gleitpunkt-Typen in Java float Wertebereich (plattformunabhängig) s*m*2^e mit s = +1 oder -1 m = positiv ganze Zahl <224 e = ganze Zahl zwischen -149 und 104 Speicherplatz 4 Bytes (32 Bits) Voreinstellung 0.0f Genauigkeit ca. 7 signifikante Dezimalziffern. © Jürgen Lederer, Michael Bösser
Gleitpunkt-Typen in Java double Wertebereich (plattformunabhängig) s*m*2^e mit s = +1 oder -1 m = positiv ganze Zahl < 253 e = ganze Zahl zwischen -1075 und 970 Speicherplatz 8 Bytes (64 Bits) Voreinstellung 0.0d Genauigkeit ca. 15 signifikante Dezimalziffern. © Jürgen Lederer, Michael Bösser
Gleitpunkt-Typen in Java Binäre Operationen (analog zu ganzzahligen Typen) + - * / % (Arithmetische Operationen) < <= > >= == != (Vergleichsoperationen) Arithmetischen Operationen Beide Operanden vom Typ float Ergebnistyp float In allen anderen Fällen Ergebnistyp double Vorsicht bei Prüfung auf Gleichheit ( x == y) //mögliche Rundungsfehler ! © Jürgen Lederer, Michael Bösser
© Jürgen Lederer, Michael Bösser Die Zuweisung 1 Schreibender Zugriff Kennzeichnung einer Zahl vom Typ float durch f oder F Fehlt das f, ist die Zahl vom Typ double. © Jürgen Lederer, Michael Bösser
© Jürgen Lederer, Michael Bösser Die Zuweisung Eine Zuweisung wird folgendermaßen gelesen: »Radius ergibt sich zu 5.5« oder »Radius wird 5.5 zugewiesen« oder »Radius sei 5.5« Zuweisung löscht den in der Speicherzelle befindlichen Wert Unterschiede in den Programmiersprachen In einigen Programmiersprachen Verwendung von »:=« als Zuweisungszeichen In Java und C++ Verwendung von »=« Programmierer muß darauf achten, daß er nicht = (Zuweisung) und == (Vergleich auf Gleichheit) verwechselt! . © Jürgen Lederer, Michael Bösser
© Jürgen Lederer, Michael Bösser Die Zuweisung 2 Lesender und schreibender Zugriff auf verschiedene Attribute © Jürgen Lederer, Michael Bösser
© Jürgen Lederer, Michael Bösser Die Zuweisung 3 Lesender und schreibender Zugriff auf dasselbe Attribut int Zaehler; //Deklaration Zaehler = Zaehler + 1; © Jürgen Lederer, Michael Bösser
© Jürgen Lederer, Michael Bösser Typumwandlungen Einem Attribut können nur Werte zugeordnet werden, die seinem Typ entsprechen ! Beispiel int A; float B = 10.5; A = B; // Fehler wegen unterschiedlicher Typen © Jürgen Lederer, Michael Bösser
© Jürgen Lederer, Michael Bösser Typwandlungen Automatische Typausweitung Von byte nach short, int, long, float, double Von short nach int, long, float oder double Von char nach int, long, float, oder double Von int nach long, float, oder double Von long nach float oder double Von float nach double Beispiel double a, b; float c; a = b + c + 2.785f;. © Jürgen Lederer, Michael Bösser
© Jürgen Lederer, Michael Bösser Typwandlungen Explizite Typeinengung (casting) Erfolgt, wenn der gewünschte Typ explizit angegeben wird Beispiel int a; float b = 10.25; a = (int) b; float-Wert 10.52f wird in den int-Wert 10 gewandelt a = (int)(b / 3.3f + 5.73f); Typanpassung erfolgt erst nach der Ausführung der Berechnung b / 3.3f + 5.73f. © Jürgen Lederer, Michael Bösser