Variablen und Datentypen - Adolf-Reichwein
Download
Report
Transcript Variablen und Datentypen - Adolf-Reichwein
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