Sprachkonstrukte

Werbung
Sprachkonstrukte
Einführung in Java
Folie 1 von 20
12. Mai 2011
Ivo Kronenberg
Inhalt
•
Kommentare
•
Identifier (Bezeichner)
•
Variablen
•
Numerische Ausdrücke und Typen
•
Kontrollstrukturen
–
–
–
–
Verzweigungen
Bedingungen
Schleifen
Zuweisungen
Sprachkonstrukte | Ivo Kronenberg
12. Mai 2011
Folie 2 von 20
Kommentare
•
Zeilenkommentar
// hier kann irgendetwas stehen
•
Blockkommentar
/*
hier kann auf mehreren Zeilen
eine Erklärung stehen
*/
•
Dokumentation (Javadoc)
/**
* Hier steht die Dokumentation zur Klasse,
* Methode oder Attributt
*/
Sprachkonstrukte | Ivo Kronenberg
12. Mai 2011
Folie 3 von 20
Schreiben von JavaDoc Kommentaren
Online:
http://java.sun.com/j2se/javadoc/writingdoccomments/
Sprachkonstrukte | Ivo Kronenberg
12. Mai 2011
Folie 4 von 20
Identifier (Bezeichner)
•
Wählbarer Name von
– Klassen
– Variablen
– Methoden
•
Bestehend aus
– Buchstaben
– Zahlen
– Underscore (_)
•
Einschränkung
– Reservierte Schlüsselwörter dürfen nicht als Identifier
benutzt werden (z.B. class, enum)
– Erstes Zeichen darf keine Zahl sein
– Case Sensitive (sum != Sum)
– Beachte Konventionen
Sprachkonstrukte | Ivo Kronenberg
12. Mai 2011
Folie 5 von 20
Schlüsselwörter in Java
Online:
http://download.oracle.com/docs/cd/E17409_01/javase/tutoria
l/java/nutsandbolts/_keywords.html
Programmieren mit Java, Anhang A, Seite 445
Sprachkonstrukte | Ivo Kronenberg
12. Mai 2011
Folie 6 von 20
Variablen
•
Definition
– Modifier Typ Idenetifier: final int zero;
•
Wertzuweisung (Ausdruck)
– Identifier = Wert: zero = 0;
– Selbstzuweisung: a = a;
•
Initialisierung
– Defintion mit Wertzuweisung: int zero = 0;
Sprachkonstrukte | Ivo Kronenberg
12. Mai 2011
Folie 7 von 20
Numerische Ausdrücke
•
Operatoren Grundrechenarten
–
–
–
–
–
•
+
*
/
%
Addition
Subtraktion
Multiplikation
Division
Modulo (Divisionsrest)
Auswertung von Ausdrücken
– Punkt vor Strichrechnung
– Assoziativität von links nach rechts
•
Sonderfall Division
– int resultat = 5 / 3
Sprachkonstrukte | Ivo Kronenberg
=> 1.6666?
12. Mai 2011
Folie 8 von 20
Numerische Typen
Typ
Grösse Min. Wert
(Byte)
Max. Wert
byte
1
-2^7
+2^7-1
short
2
-2^15
+2^15-1
int
4
-2^31
+2^31-1
long
8
-2^63
+2^63-1
float
4
1.40129*10^-45 3.40282*10^38
double
8
4.94065*10^-324 1.79769 * 10^308
Sprachkonstrukte | Ivo Kronenberg
12. Mai 2011
Folie 9 von 20
Typenkonversion
•
Implizite Typenkonversion
– Kompatible Typen können automatisch konvertiert
werden: double zahl = 15;
•
Explizite Typenkonversion
– Erzwungene Typenkonversion (Typecast):
int zahl = (int) 15.3;
– Laufzeitfehler bei ungültiger Konversion
Sprachkonstrukte | Ivo Kronenberg
12. Mai 2011
Folie 10 von 20
Kontrollstrukturen –
Verzweigungen
•
Verzweigung (if-Anweisung)
if (month == 2)
days = 28;
else if (month == 4 || month == 6 || month == 9 ||
month == 11)
days = 30;
Dangling Else
else
days = 31;
Sprachkonstrukte | Ivo Kronenberg
12. Mai 2011
Folie 11 von 20
Kontrollstrukturen –
Auswertung Bedingungen
•
Boolscher Datentyp (Wahrheitswerte):
boolean result = true;
•
Vergleichsoperatoren (relationale Operatoren):
–
–
–
–
–
–
•
<
<=
>
>=
==
!=
kleiner
kleiner gleich
grösser
grösser gleich
gleich
ungleich
Logische Operatoren (Verknüpfen von mehrerer
Bedingungen):
–
–
–
–
&&
||
^
!
logisches Und
logisches Oder
exklusives logisches Oder (Xor); Genau ein Operand ist true
logisches Nicht
Sprachkonstrukte | Ivo Kronenberg
12. Mai 2011
Folie 12 von 20
Kontrollstrukturen –
Blöcke
•
Geschweifte Klammern zur Gruppierung (Block)
•
Beliebige Anzahl Anweisungen in Block (0 - ∞)
•
Verschachtelungstiefe beliebig (Blöcke können
ineinander verschachtelt werden)
•
if(month == 2) {
days = 28;
} else {
if(month <8) {
days = 30 + (month % 2);
} else {
days = 31 - (month % 2);
}
}
Sprachkonstrukte | Ivo Kronenberg
If-Kaskade
12. Mai 2011
Folie 13 von 20
Kontrollstrukturen –
Schleifen
•
Wiederholte Ausführung von Anweisungen
•
int month = 1;
while(month <= 12) {
month = month +1;
}
Sprachkonstrukte | Ivo Kronenberg
12. Mai 2011
Folie 14 von 20
Kontrollstrukturen –
Schleifen
•
Vorzeitiger Abbruch von Schleife mit break
int i = 0;
while(true) {
i++;
if(i >= 12) break;
}
•
Schleifenkurzschluss mit continue
Sprachkonstrukte | Ivo Kronenberg
12. Mai 2011
Folie 15 von 20
Kontrollstrukturen –
Zuweisung
•
Operatorzuweisung
–
–
–
–
•
+=
-=
/=
*=
addiert zum Variablenwert
subtrahiert vom Variablenwert
dividiert den Variablenwert
multipliziert den Variablenwert
Inkrement und Dekrement
– ++ Addiert 1 zum Variablenwert
– -- Subtrahiert 1 vom Variablenwert
•
Präfix und Postfix
– Inkrement bzw. dekrement und Abfrage von Wert in
einem.
– Präfixoperator (Anweisung vor Abfrage)
– Postfixoperator (Abfrage vor Anweisung)
– int x = 1;
int y = x++; // y = 1
y = ++x;
// y = 3
Sprachkonstrukte | Ivo Kronenberg
12. Mai 2011
Folie 16 von 20
Kontrollstrukturen –
Bedingter Operator
•
Verwendung für Variablenzuweisung
•
Syntax: Variable = Bedingung ? Ausdruck :
Ausdruck
int days = (month == 2) ? 28 : 31;
Sprachkonstrukte | Ivo Kronenberg
12. Mai 2011
Folie 17 von 20
Kontrollstrukturen –
Gültigkeitsbereiche (Scope)
•
Sichtbarkeit
– Eine Variable ist innerhalb eines Blockes und der darin
verschachtelten Blöcke gültig
•
Namenskonflikte
– Eine Variable darf in einem Sichtbarkeitsbereich nur
einmal definiert werden.
– Blöcke der gleichen Verschachtelungstiefe dürfen die
gleiche Variable definieren:
while(…) {
int tmp = …;
}
while(…) {
int tmp = …;
}
Sprachkonstrukte | Ivo Kronenberg
12. Mai 2011
Folie 18 von 20
Kontrollstrukturen –
for - Schleifen
•
Alternatie zu while Schlaufe
identisch
int i = 0;
while(i < 10) {
i++;
…
}
Sprachkonstrukte | Ivo Kronenberg
for(int i = 0; i < 10; i++) {
…
}
12. Mai 2011
Folie 19 von 20
Herunterladen