|
www.guentherschulz.de
|
|
Programmierbeispiele Java
|
Inhaltsverzeichniss
Kommentare im Programm
Klassen vorab, ein lauffähiges Programm
Bildschirmausgabe auf Standart Out
Literale
Variablenvereinbarung
Operatoren
Verzweigung
Wiederholung
while
for
Das Switch Statement
Klassen Einführung
Definieren einer Klasse
Definieren von Datenmitgliedern
Definieren von Funktionsmitgliedern
Klassen Vertiefung
Zugriffskontrolle
Objektreferenzen
Felder
Laufzeitfehler bearbeiten, die Exceptions
Dateizugriff
Java als Applet
Kommentare im Programm
// mit zwei Vorwärtsschrästrichen, gilt nur für diese Zeile
/* mit Vorwärtsschrägstrich und Sternchen, gilt bis mit
Sternchen Vorwärtsschrägstrich der Kommentar beendet wird. */
Seitenindex
Klassen vorab, ein lauffähiges Programm
// Jede Funktion, auch die hier gezeigt Funktion main(), die beim Start
// eines Programms aufgerufen wird, muss in einer Klasse sein, hier in
// der Klasse prog
public class prog
{
public static void main(String args[])
{
// Hauptfunktion, wird beim Start der Klasse aufgerufen.
// Die Datei unter dem Klassennamen mit dem Anhang ".java"
// abspeichern. Der Dateiname heißt allso
// Klassennamen.java
// Vorsicht, java unterscheidet zwischen Groß- und
// Kleinschreibung bei Klassen und Dateinamen.
// Desweiteren hat die Main-Funktion "public" zu sein.
// laut Buch muss die definition exact so sein, wie oben
// eingegeben, stimmt das ?
}
}
Seitenindex
Bildschirmausgabe
// System ist ein Objekt, das auf das System verweist, in dem das
// Programm ausgeführt wird. Out ist das default output Gerät
System.out.println(" string "); // ein string in einer Zeile
System.out.println(" string1 " + " string2"); // zwei string in einer Zeile
Seitenindex
Literale
String Literale
"Das ist ein Stringliteral" // Ein Stringliteral ist ein in Gänse-
// füßchen eingeschlossener Text
Character Literale
\n Neue Zeile
\t Horizontaler Tabulator
\b Backspace
\r Carriage return
\f Form feed
\' Halbes Gänsefüßchen
\" Gänsefüßchen
\\ Backslash
Beispiel
System.out.println(" zusätzlicher Zeilenvorschub\n ");
char cChar1;
cChar1 = '\n'; // cChar1 beinhaltet einen Zeilenvorschub
Integer Literale
Alle folgenden Literale haben denselben Wert
0377 Literale die mit einer "0" beginnen sind oktal
0xff die mit 0x beginnen sind hexadezimal
0XFF die mit 0X beginnen sind ebenfals hexadezimal
255 ohne prefix, die sind dezimal
Beispiel
char cChar1;
char cChar2;
cChar1 = 0x42; // cChar1 und cChar2 beinhalten das
cChar2 = 'B'; // selbe Zeichen
Seitenindex
Variablenvereinbarung
von Variablentypen, die Java selbst beinhaltet
// Vor dem Benutzen einer Variable ist zu beachten, daß sie
// initialisiert werden muss, also es muß ihr ein Wert zugeordnet
// werden
boolean bFlag; // Boolsche Variable
byte yByte; // ein Byte, zum Vereinbaren von Feldern
char cEinZeichen; // zum Vereinbaren von einem Zeichen
short sKurz; // nummerischer Wert
int nInteger; // nummerischer Wert
long lLong; // nummerischer Wert
float fFloat; // nummerischer Wert
double dDouble; // nummerischer Wert
// initialisieren bei der Vereinbarung
int nIntegerVariable = 0;
// Wird vor dem Variablentyp ein static angegeben, wird die Variable
// nicht im Objekt sondern in einem gemeinsamme Speicherbereich der
// Klasse gespeichert. Dies ist wichtig, wenn z.B. kein Applet sonder
// eine Java Anwendung geschrieben wird, da die main()-Funktion
// als static definiert werden muss und damit auch die Klassenvariablen
// auf die aus main() zugegriffen werden muss.
static int m_iInteger
// Wird einer Variablenvereinbarung final static vorangestellt,
// ist ihr Wert nicht mehr veränderbar, praktisch eine
// Konstante
final static int m_iJahr = 1778;
von Feldern
int iFeld[] = new int[10]; // Variable iFeld, ein Feld mit 10 Elementen
int iFeld2[][] = new int[10][10]; // Variable iFeld2, ein Feld
// mit 10 mal 10 Elementen
Umwandeln von Typen, z.B. long in integer
long lLong;
int iInteger;
iInteger = 100;
lLong = (long) iInteger; // man stellte vor die Quellvarialble den
// gewünschten Typ in runden Klammern davor
Umwandeln von Typen, z.B. char in byte und umgekehrt
byte bByte;
char cChar;
bByte = (byte) 'A';
cChar = (char) bByte;
Seitenindex
Operatoren
Operatoren an Integer und Fließkommazahlen
unäre Operatoren
++ eine nummerische Variable um eins erhöhen
binäre Operatoren
+ zwei nummerische Variablen zusammenzählen
- eine nummerische Variable von einer anderen abziehen
Operatoren an Boolsche Variablen
Operatoren an Strings
+ fügt zwei Strings zusammen
Seitenindex
Verzweigung
// Das if Statement
if (i == 10) // führt den If Zweig aus, wen i = 10 ist
{
// Statements
}
else // führt den else Zweig aus, wenn i nicht 10 ist
{
// Statements
}
Seitenindex
Wiederholung
Die while Schleife
Kopfgesteuer, wird evtl. garnicht durchlaufen
while (i < 10)
{
// statements
}
Fußgesteuert, wird auf jeden Fall einmal durchlaufen
do
{
// statements
} while ( i < 10);
Abbrechen einer Schleife, der Befehl break
ohne Sprungadresse
do
{
// statements
break; // mit break wird eine Schleife sofort beendet.
} while ( i < 10);
mit Sprungadresse
do
{
// statements
break EinSprungsPunkt; // es wird zum Punkt EinSprungsPunkt gesprungen.
} while ( i < 10);
// Statements
EinSprungsPunkt:
Abbrechen einer Schleife, der Befehl continue
while (i < 10)
{
// statements
continue; // Die Steuerung wird ab hier der schließenden
// Klammer der Schleife übergeben, der Rest der
// Schleife wird in diesem Durchlauf also nicht ausgeführt
// weiter statements
}
Die for Schleife
for (i=0;i<10; i++) // (i bekommt Startwert; solange i kleiner ist als 10;
// i bei jedem durchlauf um 1 erhöhen
{
// statements
}
Seitenindex
Das Switch Statement
switch (i)
{
case 1 : // statement
// statement
break; // ohne break würeden auch die anderen case
// geprüft werden
case 2 :
case 3 :
default :
}
Seitenindex
Klassen Einführung
Definieren einer Klasse
class MeineErste
{
// Die Daten- und Funktionsmitglieder einer Klasse
// Datenmitglieder
double m_dDouble; // eine nummerische Variable des Typs double
int m_iInteger; // eine nummerische Varialbe des Typs integer
// Funktionsmitglieder
static void BildschirmAusgabe()
{
System.out.println("Funktion Bildschirmausgabe");
}
public static void main(String args[])
{
BildschirmAusgabe();
}
}
Definieren eines Datenmitglieds
Datenmitglieder werden gebraucht, um die Dateneigenschaften einer
Klasse zu beschreiben. Es werden die selben Regeln wie das Vereinbaren
von lokalen Variablen genommen, mit der Ausnahme, daß man
dem Variablennamen ein "m_", für Member, voranstellt.
// Datenmitglieder
double m_dDouble; // eine nummerische Variable des Typs double
int m_iInteger; // eine nummerische Varialbe des Typs integer
Definieren eines Funktionsmitglieds
Alle Funktionen im Java müßen Mitglieder einer Klasse
sein. Die Definition einer Methode beginnt mit dem Datentyp, den sie
mit return zurückgibt. Wenn die Methode nichts zurückgibt,
hat sie den Typ void. Der erste Buchstabe einer Methode ist gewöhnlich
ein Großbuchstabe. Den Methodennamen folgen Runde Klammern, in diese
sind, wenn nätig, die Parameter angegeben. Wenn es mehrere Parameter
sind, werden sie durch Komma getrennt.
public class g // Klasse unter g.java abspeichern
{
static void BildschirmAusgabe()
{
System.out.println("Funktion Bildschirmausgabe");
}
public static void main(String args[])
{
BildschirmAusgabe();
}
}
public class g // Klasse unter g.java abspeichern
{
static int m_iInteger = 4;
static int EinsDazuzaehlen(int i)
{
i = i + 1;
return i;
}
public static void main(String args[])
{
m_iInteger = 100;
System.out.println(EinsDazuzaehlen(4) + " " + m_iInteger);
}
}
Seitenindex
Zugriffskontrolle
Schlüsselwort Bedeutung
kein Schlüsselwort Zugriff für alle Methoden des selben Packages
public Zugriff erlaubt für alle Methoden in allen Klassen
private Zugriff nur für Mitglieder derselben Klasse
Diese Schlüsselworte gelten für Daten- und Funktionsmitglieder
Seitenindex
Objektreferenzen
// Eine Referenz ist eine Variable, die die Adresse eines Objekts
// speichert
MeineKlasse MeinObjekt; // erzeugt eine Variable, in der ein Verweiss
// aus ein Objekt der Klasse MeineKlasse speichern
// kann.
MeinObjekt = new MeineKlasse(); // Weist die Referenz auf das neu erzeugte
// Objekt der Variablen MeinObjekt zu.
MeineKlasse MeinObjekt = new MeineKlasse(); // die zwei Statements oben
// in einer Zeile
// Übergibt man eine Variable in Java an eine Funktion, kann deren
// daruch nicht verändert werden. Den Wert einer Variable kann
// dadurch verändert werden, daß man deren Referenz allso
// die "Adresse des Speicherplatzes" übergibt.
// Durch Rekursieven Aufruf einer Klasse kann eine "Linked List" erzeugt
// werden.
Seitenindex
Felder
// Felder werden als Objekt mit dem new Befehl erzeugt.
// Ihre Referenz wird in einer Variablen gespeichert
// speichert
int iFeld[] = new int[20]; // Erzeugt ein integer Feld mit 20 Elementen
// durch die [] hinter dem Variablennamen
// weiß der Compiler daß es eine
// Referenz auf ein Feld ist.
int[] iFeld2 = new int[30]; // Die eckigen Klammern kann man auch
// hinter den Typ schreiben.
Seitenindex