Variablen und Datentypen - Adolf-Reichwein

Werbung
Variablen und Datentypen
© Jürgen Lederer, Michael Bösser
Veranschaulichung einer
Variable
schreibender
Zugriff
lesender
Zugriff
Inhalt
Bezeichner
Speicherzelle(n)
© Jürgen Lederer, Michael Bösser
Anzahl
der
Speicherzellen
= Typ
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
• Name der Speicherzelle
• benötigten Speicher
• 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
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
byte
short
int
long
char
Kleinster Wert
Größter Wert
Speicherplatz
0
255
1 Byte
-32768
32767
2 Bytes
-2147483648
2147483647
4 Bytes
-9223372036854775808 9223372036854775807 8 Bytes
/u0000 (0)
/uffff (65535)
2 Bytes.
© Jürgen Lederer, Michael Bösser
Ganzzahlige Typen in Java


Darstellung als IntegerLiteral
 4 Darstellungsarten
 Dezimaldarstellung:
 Oktaldarstellung:
 Hexadezimaldarstellung:
 Literal von Typ long:
110
0156
0x6E
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
+
Addition
Subtraktion
*
Multiplikation
/
Division
%
Modulo
<
Kleiner
<=
Kleiner gleich
>
Größer
>=
Größer Gleich
==
Gleich
!=
Ungleich
© Jürgen Lederer, Michael Bösser
Beispiel
5 + 6 ergibt 11
9-3
ergibt 6
10 * 15 ergibt 150
13 / 3 ergibt 4
20 % 7 ergibt 6
3 < 5 ergibt true
3 <= 3 ergibt true
2 > 10 ergibt false
5 >= 6 ergibt false
3 == 3 ergibt true
5 != 5 ergibt false.
Gleitpunkt-Typen in Java

Gleitpunkt-Typen in Java

float

Wertebereich (plattformunabhängig)




s*m*2^e mit
 s = +1 oder -1
24
 m = positiv ganze Zahl <2
 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
53
 m = positiv ganze Zahl < 2
 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


In allen anderen Fällen


Ergebnistyp float
Ergebnistyp double
Vorsicht bei Prüfung auf Gleichheit

( x == y)
//mögliche Rundungsfehler !
© Jürgen Lederer, Michael Bösser
Die Zuweisung
1
Schreibender Zugriff
float Radius; //Deklaration
Radius
Bezeichner
der Speicherzelle, in die
der Wert eingetragen
werden soll
=
Symbol, daß
ein Wert eingetragen werden soll (Zuweisungssymbol, ErgibtZeichen)
5.5f
;
Angabe, was
eingetragen
werden soll
Zeichen
für Ende
der Anweisung
Radius
Zuweisung


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
5.5f
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
Die Zuweisung
2 Lesender und schreibender Zugriff auf
verschiedene Attribute
© 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
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
=
A
B
© 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
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
Herunterladen