Folien 23-29 als PDF

Werbung
SEW-23
Benutzung von Klassen aus Bibliotheken
Package: Menge thematisch zusammengehöriger Klassen- (und Interface-) Deklarationen
Bibliothek oder Teil davon
Gültigkeitsgrenze für Klassennamen, falls nicht als public
public class Date { ... }
// auch außerhalb des Package gültig
class Intern {...}
// nur innerhalb des Package gültig
© 1999 bei Prof. Dr. Uwe Kastens
Einige Packages, die zu jeder Java-Implementierung gehören:
lang
grundlegende Klassen zur Sprache Java
util
nützliche Datenstrukturen mit ihren Operationen
io
Ein- und Ausgabe
text
spezielle Formatierung
awt
Graphik und graphische Benutzungsoberflächen (GUI)
awt.event Ereignisbehandlung
applet
Java programme im WWW
net
Operationen in Netzwerken
Benutzung von Klassen aus Packages:
import java.util.Date; // nur die Klasse Date
import java.util.*;
// beliebige Klassen aus java.util
Vorlesung Software-Entwicklung / Folie 23
Ziele:
Standardbibliotheken nutzen
in der Vorlesung:
Erläuterungen dazu
nachlesen:
Judy Bishop: Java lernen, 3.Aufl., Abschnitt 2.3
Übungsaufgaben:
Suchen Sie ein Verzeichnis der Standardbibliotheken und ihrer Klassen (siehe Internet Ressourcen im
Vorlesungsmaterial).
SWE-24
Datentypen
Ein Datentyp bestimmt eine Wertemenge und Operationen darauf.
Datentypen in Java:
numerische Werte:
logische Werte:
Zeichen:
Objektreferenzen:
byte, short, int, long, float, double
boolean
char
Name einer Klasse (oder eines Interface)
Eine Variable hat einen Typ, d. h. sie kann Werte aus der Wertemenge aufnehmen.
Ein Ausdruck hat einen Typ, d. h. seine Auswertung liefert einen Wert aus der Wertemenge.
© 1999 bei Prof. Dr. Uwe Kastens
Literale: Notation für Werte im Programmtext, z. B.
127
'?'
null
Operatoren verknüpfen Werte bestimmter Typen, z. B.
Operator
Signaturen
Typen der Operanden -> Ergebnistyp
+
int × int -> int
long × long -> long
float × float -> float
double × double -> double
String × String -> String
Der Operator + ist hier mit fünf Bedeutungen überladen; sie werden an den Operandentypen
unterschieden.
Vorlesung Software-Entwicklung / Folie 24
Ziele:
Typbegriff für Java kennenlernen
in der Vorlesung:
Übersicht zu den Typen in Java
nachlesen:
Judy Bishop: Java lernen, 3.Aufl., Abschnitt 3.1
Übungsaufgaben:
Verständnisfragen:
• Gibt es verschiedene Literale für denselben Wert?
• Gibt es Literale für Objektreferenzen?
SWE-25
Logische Werte
Typname:
Werte:
boolean
true false
Vergleichsoperatoren liefern Werte vom Typ boolean: == != > < >= <=
logische Operatoren verknüpfen Werte vom Typ boolean:
und
oder
ausschließendes oder
nicht
&
|
^
!
Beispiele:
© 1999 bei Prof. Dr. Uwe Kastens
boolean istRentner, istJugendlich, hatArbeit, freierEintritt;
int alter;
...
istRentner = alter >= 65;
freierEintritt = (istRentner | istJugendlich) & !hatArbeit;
Operatoren und, oder mit Kurzauswertung, d. h. wenn der linke Operand das Ergebnis
bestimmt, wird der rechte nicht mehr ausgewertet: &&
||
Beispiel:
anzahl != 0 && summe / anzahl > 10
Ausgabe logischer Werte:
System.out.println ("It is " + hatArbeit + " that he is employed");
It is true that he is employed
Vorlesung Software-Entwicklung / Folie 25
Ziele:
Umgang mit logischen Werten
in der Vorlesung:
Erläuterungen und weitere Beispiele
nachlesen:
Judy Bishop: Java lernen, 3.Aufl., Abschnitt 3.6
Übungsaufgaben:
Verständnisfragen:
• Warum ist der korrekte Ausdruck a == true unsinnig?
• Was bedeutet Kurzauswertung?
• In welchen Fällen ist Kurzauswertung nützlich?
SWE-26
Zeichen
Typname:
Wertemenge:
Literale:
char
einzelne Zeichen aus einem Zeichensatz (Unicode)
'a' '?'
Der Zeichensatz enthält Buchstaben, Ziffern, Sonderzeichen, z. B. 'B'
nicht druckbare Zeichen mit spezieller Bedeutung, z. B. '\b'
und viele Zeichen aus nicht-lateinischen Schriften, z. B.
Der Zeichensatz ist geordnet, z. B.
'⊗'
'\t'
'a' < 'b'
© 1999 bei Prof. Dr. Uwe Kastens
Vorlesung Software-Entwicklung / Folie 26
Zeichen als Datentyp
in der Vorlesung:
Erläuterungen dazu
nachlesen:
Judy Bishop: Java lernen, 3.Aufl., Abschnitt 5.4
Übungsaufgaben:
Verständnisfragen:
'#'
'\n'
'\u2297' für ⊗
Werte vom Typ char nicht verwechseln mit Zeichenreihen!
Das sind Objekte der Klasse String.
Es gibt Literale für String-Objekte, z. B. "Welcome"
"#"
Ziele:
'6'
' '
SWE-27
Numerische Typen
Typname
byte
short
int
long
float
double
Literale:
Speicher (Bits)
8
16
32
64
32
64
kleinster Wert
-128
-32768
-2147483648
< - 1018
< -1038
< -10308
int:
123
077
0xff
float: 3.14f 6.022e+23f
größter Wert
127
32767
2147483647
> 1018
> 1038
> 10308
long:
21L
double: 3.14
1e137
1e-9d
numerische Operatoren: + - * /
% (modulo)
- (unär)
Signaturen: int × int -> int
float × float -> float
long × long -> long
double × double -> double
© 1999 bei Prof. Dr. Uwe Kastens
Konversion (allgemein, nicht nur numerisch):
Wandlung eines Wertes eines Typs in einen entsprechenden Wert eines anderen Typs.
implizite Konversion, wenn nötig:
byte -> short -> int -> long -> float -> double
explizite Konversion durch Type Cast:
float kilograms; double estimate = 45;
kilograms = (float) (estimate * 1.2);
Vorlesung Software-Entwicklung / Folie 27
Ziele:
Numerische Typen und Konversion kennenlernen
in der Vorlesung:
Erläuterungen und Beispiele dazu
nachlesen:
Judy Bishop: Java lernen, 3.Aufl., Abschnitt 3.1
Übungsaufgaben:
Verständnisfragen:
• Welche Konversionen sind unzulässig?
• Welche Konversionen können bewirken, daß der Wert ungenauer dargestellt wird?
SWE-28
Zahldarstellungen
ganze Zahlen dargestellt im Zweierkomplement, z. B. mit N=4 Bits:
-8
1000
-2N-1
-7
1001
...
...
-1
1111
0
0000
1
0001
...
...
7
0111
2N-1-1
Eine Zahl bnbn-1...b1b0 hat den Wert bn*(-2n) + bn-1*2n-1 + ... + b1*2 + b0
Addition im Zweierkomplement wie Addition von Binärzahlen
Negation im Zweierkomplement: bitweises Komplement + 1
Subtraktion durch Addition des negierten Wertes
Gleitpunktzahlen dargestellt durch Vorzeichen v, Exponent e, Mantisse m
© 1999 bei Prof. Dr. Uwe Kastens
Der Wert ist v*m*2e
float: 8 Bits für e, 23 Bits für m;
double: 11 Bits für e 52 Bits für m
Vorlesung Software-Entwicklung / Folie 28
Ziele:
Zahldardstellungen kennenlernen
in der Vorlesung:
Rechenbeispiele
Übungsaufgaben:
Verständnisfragen:
Wieviele verschiedene float-Werte sind darstellbar?
SWE-29
Iteration mit for-Schleifen
for-Schleifen dienen zur Formulierung iterativer Berechnungen. Sie haben die Form:
for ( Initialisierung; Bedingung; Fortschaltung)
{ Schleifenrumpf
}
Ausführung:
Initialisierung: Deklaration(en) oder Zuweisung(en) für
Schleifenvariable; Deklarationen sind in der ganzen
Schleife gültig.
Initialisierung
Bedingung: logischer Ausdruck, Vorbedingung für die
(erneute) Ausführung des Schleifenrumpfes
Schleifenrumpf
Fortschaltung: Anweisungen, die die Werte der
Schleifenvariable(n) ändern
Fortschaltung
© 1999 bei Prof. Dr. Uwe Kastens
Beispiel:
for (int zaehler = 0; zaehler < 5; zaehler++)
{ System.out.println ("******");
}
Eine Schleife terminiert, wenn es einen Wert gibt, der in jeder Iteration
monoton wächst (fällt) und nach oben (unten) begrenzt ist.
Vorlesung Software-Entwicklung / Folie 29
Ziele:
Anweisungsform Iteration kennenlernen
in der Vorlesung:
Beispiele dazu
nachlesen:
Judy Bishop: Java lernen, 3.Aufl., Abschnitt 3.2
Übungsaufgaben:
Verständnisfragen:
Bedingung
Herunterladen