Java

Werbung
Teil 5 - Java
Programmstruktur
Operatoren
Schlüsselwörter
Datentypen
1
Kommentare in Java
In Java gibt es drei Möglichkeiten zur Kommentierung:
// Kommentar
Alle Zeichen nach dem „//“ werden ignoriert.
Îfür „normale“ einzeilige Kommentare.
/* Kommentar
über mehrere Zeilen */
Alle Zeichen zwischen dem „/*“ und dem „*/“
werden ignoriert.
Î auskommentieren von Programmteilen.
Die Schachtelung der „Kommentarklammern“ ist nicht erlaubt.
/**
* javadoc-Kommentar
* @since JDK1.0
*/
Alle Zeichen zwischen dem „/**“ und dem „*/“
werden ignoriert.
Î für das javadoc-Programm des JDK.
Mit ihrer Hilfe wird eine einfache
Online-Dokumentation erstellt.
2
Grundlagen der Programmierung II
DBIS - SS2006
Noch mal im Detail:
Grundlegende Programmstruktur
package ...
Sichtbarkeit / Ordnersystem
import ...
Verfügbarmachen anderer
Klassen
class X {
Name der Klasse
}
3
int nummer=0;
float zahl;
...
Klassenkörper
Enthält Variablen, ...
X {...}
Konstruktor
(heißt wie die Klasse, erzeugt
das Objekt, hat kein
Rückgabewert)
Methode1 {...}
Methode2 {...}
Die verschiedenen Methoden,
welche die eigentliche
Funktionalität einer Klasse
ergeben.
Ende der Klasse (des ~körpers)
Grundlagen der Programmierung II
DBIS - SS2006
Zugreifbarkeit auf Methoden und Variablen
private – nur innerhalb der Klasse
sichtbar und somit zugreifbar.
private
ohne – nur innerhalb des Pakets,
das die Deklaration der Klasse
enthält (Standardzugriffsrecht).
ohne
protected
public
protected – zugreifbar von
Methoden der eigenen Klasse, der
davon abgeleitete Klassen und von
Klassen im selben Paket.
Zugriffsmodifizierer
public – für Methoden aller
Klassen zugreifbar (welche die
Klasse importieren).
4
Grundlagen der Programmierung II
DBIS - SS2006
Beispiel:
package mypackage;
import java.util.*; /* nicht nötig */
/**
*
Klasse die Studenten darstellen soll. */
public class Student {
private int semester;
public Student() {}
// default Konstruktor optional!
/**
*
Setzt die Semesterzahl. */
public void setSemester(int sem) {
semester=sem;
}
/**
*
Gibt die Semesterzahl zurück. */
public int getSemester() {
return semester;
} ...
}
5
Grundlagen der Programmierung II
DBIS - SS2006
Klassenvariablen (static)
Mit Hilfe von static kann man Klassenvariablen und
Klassenmethoden erzeugen, die für alle Objekte der
Klasse gleich sind.
public class Person {
…
static int countPerson;
public Person() {
countPerson++;
}
public static int getCountPersonen() {
return countPerson;
} …
Die Variable countPerson ist für alle Instanzen der Klasse Person gleich!
6
Grundlagen der Programmierung II
DBIS - SS2006
Ausnahmen (Exceptions)
• Es gibt außergewöhnliche Bedingungen, die es nicht
gestatten im Code normal fortzufahren, z.B. wenn man
auf eine Datei zugreifen möchte, die nicht existiert.
• Die Fehler treten somit zur Laufzeit und nicht zur
Compilezeit auf.
• In manchen Fällen sind die Ausnahmen bereits
vorgesehen. Die entsprechenden Methoden enthalten
dann eine throws-Klausel.
7
Grundlagen der Programmierung II
DBIS - SS2006
Ausnahmen (Exceptions)
void read() throws IOException {
…
throw new IOException(“Datei nicht gefunden!”);
…
}
8
Grundlagen der Programmierung II
DBIS - SS2006
Ausnahmen (Exceptions)
Will man solche Methoden verwenden, muss die
eventuelle Ausnahme abgefangen und die entsprechende
Verhaltensweise implementiert werden.
Alternativ kann die Exception einfach weiter gereicht werden.
Beispiel:
...
try {
read();
} catch (IOException e) {
…
// im Falle einer Ausnahme
}
...
9
Grundlagen der Programmierung II
DBIS - SS2006
this und super
super: Ermöglicht den Zugriff auf die Methoden der Oberklasse.
this: “Zeigt” auf das aktuelle Objekt.
Beispiel:
public class Student extends Person {
private int semester;
public int getSemester() {
return this.semester;
}
public void incrementAge() {
super.incrementAge();
//Aufruf der Methode in Person
if (this.getSemester() > 8)
System.out.println(“Achtung, Studiengebühren werden fällig!");
}
}
10
Grundlagen der Programmierung II
DBIS - SS2006
instanceof
Mit instanceof kann die Klassenzugehörigkeit
geprüft werden.
...
Object o = xyz.get();
if (o instanceof Student)
int i =
((Student)o).getAge();
...
Beachte: Ein Objekt ist immer auch Element seiner
Oberklassen.
11
Grundlagen der Programmierung II
DBIS - SS2006
Casting
Bei der Deklaration eines Objektes wird die
entsprechende Klasse, zu der es gehört, angegeben.
Es ist möglich dieses Objekt in ein Objekt einer
Oberklasse zu verwandeln, z.B.:
…
Student s = new Student(4);
Person p = (Person)s;
Ist das sinnvoll?
…
Diesen Vorgang nennt man casting.
Zu den primitiven Datentypen (siehe spätere Folie) existieren
Regeln, welchen Typ man in welchen umformen kann.
12
Grundlagen der Programmierung II
DBIS - SS2006
Schlüsselwörter in Java
In Java gibt es eine Reihe von reservierten Schlüsselworten.
Sie dürfen nicht für eigene Bezeichner verwendet werden.
abstract
assert
continue
default
float
for
native
new
strictfp
super
boolean
break
byte
case
catch
do
double
else
enum
extends
goto*
if
implements
import
instanceof
null
switch
package synchronized
private
this
protected throw
public
throws
char
class
false
final
int
interface
return
short
transient
true
const*
finally
long
static
try
void
volatile
while
Die mit * gekennzeichneten Wörter sind zwar reserviert,
werden aber in der Version 1.5 von Java (noch) nicht verwendet.
13
Grundlagen der Programmierung II
DBIS - SS2006
Primitive Datentypen in Java
Die übliche Struktur in Java ist das Objekt.
Es gibt in Java aber auch einfache (primitive) Datentypen.
Typ
Inhalt
boolean
Wahrheitswert true oder false
char
Unicode-Zeichen
byte
Default
Bereich
false
true oder false
\u0000
\u0000 bis \uFFFF
Ganze Zahl mit Vorzeichen (8 Bit)
0
-128 bis 127
short
Ganze Zahl mit Vorzeichen (16 Bit)
0
-32768 bis 32767
int
Ganze Zahl mit Vorzeichen (32 Bit)
0
-231 bis 231-1
long
Ganze Zahl mit Vorzeichen (64 Bit)
0
-263 bis 263-1
float
Fließkommazahl (32 Bit)
0.0
±1.4E-45 bis ±3,4E+38
double
Fließkommazahl (64 Bit)
0.0
±4.9E-324 bis ±1.8E+308
Einfachen Datentypen haben also einen vorgegeben Standardwert.
14
Grundlagen der Programmierung II
DBIS - SS2006
Operatoren in Java
Operatorzeichen
++ -- + - ~ !
* / %
+ << >> >>>
< <= > >=
== !=
&
^
|
&&
?:
= += -= *= /=
Art der Operatoren
Auswertungsreihenfolge
Unäre Operatoren
Multiplikationsoperatoren
Additionsoperatoren
Verschiebeoperatoren
Vergleichsoperatoren
Gleichheitsoperatoren
Bitoperator UND
Bitoperator exklusives ODER
Bitoperator inklusives ODER
Logisches UND
Bedingungsoperator
Zuweisungsoperatoren
von rechts nach links
von links nach rechts
von links nach rechts
von links nach rechts
von links nach rechts
von links nach rechts
von links nach rechts
von links nach rechts
von links nach rechts
von links nach rechts
von links nach rechts
von rechts nach links
• Treten mehrere Operatoren zusammen auf, werden sie in der Reihenfolge
ihrer Priorität ausgeführt. ( Î vgl. mit der Mathematik: „Punkt vor Strich“)
• Die Priorität nimmt in der Tabelle von oben nach unten ab.
15
Grundlagen der Programmierung II
DBIS - SS2006
Operatoren in Java
Vorsicht!:
int m = 7;
Präfix:
int a = 2 * ++m;
// a=16, m=8
oder Postfix:
int b = 2 * m++;
16
// a=14, m=8
Grundlagen der Programmierung II
DBIS - SS2006
Kontrollstrukturen
• if
• while
• for
• switch
17
Grundlagen der Programmierung II
DBIS - SS2006
Bedingungsanweisungen (if)
if (Bedingung) Anweisung1;
if (Bedingung) {Block}
if (Bedingung) Anw1 else Anw2;
if (Bedingung) {Block} else {Block}
• Abkürzung:
Bsp:
18
Bedingung ? Anw1 : Anw2
(x<y) ? x : y
Grundlagen der Programmierung II
DBIS - SS2006
Unbestimmte Schleifen (while)
Nur wenn die Bedingung wahr ist, wird der Block
ausgeführt:
while (Bedingung)
{
Block
}
Der Block wird auf jeden Fall einmal durchlaufen:
do
{
Block
}
while (Bedingung);
19
Grundlagen der Programmierung II
DBIS - SS2006
Bestimmte Schleifen (for)
Anzahl der Durchläufe muss vorher bekannt sein:
int i;
for (i = 1; i <= 10; i++)
{
System.out.println(i);
}
20
Grundlagen der Programmierung II
DBIS - SS2006
Mehrfachauswahl (switch)
• Soll eine Variable auf mehrere Werte überprüft
werden, dann kann die If-Anweisung unübersichtlich
werden.
• Eine switch-Anweisung ist für solche Fälle besser
geeignet.
21
Grundlagen der Programmierung II
DBIS - SS2006
Mehrfachauswahl (switch)
int wahl =
Console.readInt(“Eine Option wählen (1 bis 4)“);
switch (wahl)
{
case 1:
. . . break;
case 2:
. . . break;
case 3:
. . . break;
case 4:
. . . break;
default: . . . break;
// Falsche eingabe
}
22
Grundlagen der Programmierung II
DBIS - SS2006
Mehrfachauswahl (switch)
• Die Variable wahl muß vom Typ
– char
– byte
– short
– int
• Nicht erlaubt sind:
– long
– float
– double
– boolean
23
Grundlagen der Programmierung II
DBIS - SS2006
Übersicht der Klammerarten
• ( ) Methoden
person.getName();
• { } Blöcke
{Anw1 {Anw2;Anw3} Anw4}
• [ ] Index der Felder
eineZahl = stapel[3];
24
Grundlagen der Programmierung II
DBIS - SS2006
Herunterladen