|
|
"Java steht für einen der großen Namen des Kaffees. Java produziert einen aromatischen, säurearmen Kaffee, der von Natur aus mild und ausgewogen im Geschmack ist." (http: Eigenschaften Java's lassen sich in wenigen Punkten formulieren:
|
Java ist ein Produkt von Sun Microsystems und kann dementsprechend von deren Seiten heruntergeladen werden. Die aktuelle Version ist unter http: Wie oben erwähnt hat man die Wahl zwischen einer Linux-, Windows- und Solarisversion. Ich werde nur auf die beiden gebräuchlichen Systeme Linux und Windows eingehen. |
||||||
Linux | Bei der Linuxversion besteht die Wahl zwischen einem RPM-Paket und einem Tar-Archiv. Die Größe beträgt bei beiden etwa 25MB. Für die Installation öffnet man eine Textkonsole und wechselt in das Verzeichnis in dem die Installationsdatei liegt. Die Installation des RPM-Paketes erfolgt dann mittels:
Da das Tar-Archiv als Shellskript vorliegt, kann dieses folgendermaßen installiert werden:
|
|||||
Windows | Unter Windows beträgt die Größe des JDK's etwa 33MB. Die Installation wird mit einem Doppelklick auf die Installationsdatei gestartet. Danach sollten die Anweisungen befolgt werden. |
Dokumentation | Ein sehr nützliches Hilfsmittel stellt die Dokumentation zur mitgelieferten Klassenbibliothek dar. Sie ist unter http: Weiterhin ist das online kostenlos verfügbare Buch GoTo Java 2 (http: |
|
Editoren | Generell können Java-Programme mit jedem Texteditor geschrieben werden. Es bieten sich jedoch spezielle Javaeditoren an, welche meist Funktionen wie Syntaxhighlighting(=Hervorhebung von Java-Schlüsselwörtern) und kompilieren/ausführen per Mausklick, zur Verfügung stellen. Unter Windows lässt sich mit dem JCreator besonders gut arbeiten. Er ist unter http: Unter Linux kann man die meisten Editoren mittels eines Java-Plugins auch für Java nutzbar machen. Ob solch ein Plug-In für den Lieblingseditor verfügbar ist, kann meist der Homepage des jeweiligen Editors entnommen werden. |
Da Java nun installiert ist, wird es Zeit für ein erstes Programm. Üblicherweise gibt das erste Programm in einer neuen Programmiersprache "Hello World!" auf dem Bildschirm aus. Und genau das tut unser Erstes auch: | ||||||
HelloWorld.java | ||||||
1: //HelloWorld 2: 3: class HelloWorld 4: { 5: public static void main(String[] args) 6: { 7: System.out.println("Hello World!"); 8: }//main 9: }//class | ||||||
Die verwendeten Befehle werden in den nächsten Kapiteln erläutert, zunächst geht es um den Weg vom Quelltext zum ausführbaren Programm. Zuerst muss der Quelltext in einen Editor übernommen werden. Abtippen ist hierbei der beste Weg, da sich so erste Elemente Java's einprägen. Dann wird der Quelltext abgespeichert. Der Compiler verlangt, dass die Quelldatei die Endung ".java" besitzt und dass der Dateiname mit dem Namen, der im Quelltext definierten Klasse, übereinstimmt. Der Name der Klasse ist immer hinter dem Schlüsselwort "class" zu finden. Demnach heißt unsere Quelldatei HelloWorld.java, wobei die Groß- und Kleinschreibung unbedingt beachtet werden muss. Nun kann das Programm compiliert werden. Dies geschieht in Javaeditoren mittels eines Klickes auf "kompilieren" bzw. "compile". Ohne Javaeditor öffnet man eine beliebige Textkonsole (unter Windows die MS-Dos-Eingabeaufforderung) und wechselt in das Verzeichnis, in welches man die Datei gespeichert hat. Kompiliert wird das Programm nun durch:
|
|
|
Die meisten Elemente werde ich nur grob beschreiben, da sie in anderen Sprachen genau so, oder ähnlich verwendet werden. Sie sollen nur als Grundlagen für die Objektorientierung in Java dienen. |
||||||
Kommentare | Wie in jeder Programmiersprache gibt es in Java Kommentare.Sie dienen dazu, die Funktionalität des Programmes festzuhalten. Kommentare werden in Java wie in C++ notiert, wobei man einzeilige und mehrzeilige unterscheidet: | |||||
1: //Das sind einzeilige Kommentare. 2: //Einzeilige Kommentare werden durch einen 3: //Doppelslash eingeleitet und enden 4: //automatisch am Zeilenende. 5: 6: /*Währenddessen endet der, durch Slash und 7: *Sternchen eingeleitete, mehrzeilige 8: *Kommentar erst durch das Auftauchen der 9: *Kombination Sternchen-Slash. 10: */ | ||||||
Anweisungen und Blöcke | Wiederum wie in C++ wird jede Anweisung durch ein Semikolon abgeschlossen. Zu den Anweisungen zählen Variablendefinitionen, Zuweisungen und Methodenaufrufe. Mehrere Anweisungen können mit geschweiften Klammern zum Block zusammengefasst werden. |
|||||
Variablen und Datentypen | Bei der Deklaration von Variablen notiert man zuerst den Datentyp, gefolgt vom Namen der Variablen. Optional kann der Variablen gleich ein Wert zugewiesen werden. Die Grunddatentypen in Java gleichen denen in anderen Programmiersprachen. Für ganze Zahlen werden, je nach Größe der Zahlen, die Datentypen byte(8 Bit), short(16 Bit), int(32 Bit) oder long(64 Bit) verwendet, für gebrochene Zahlen gibt es die Datentypen float(32 Bit) und double(64 Bit). Wahrheitswerte werden durch boolean repräsentiert. Boolschen Variablen kann, im Gegensatz zu anderen Programmiersprachen, nur true oder false zugewiesen werden. Die übliche Belegung von 1 für wahr, und allen anderen Zahlen für falsch, ist nicht zulässig. Der Datentyp für Zeichen ist char, welcher nicht ASCII-Zeichen, sondern Unicodezeichen aufnimmt. Zur Verwendung von Variablen und Datentypen nun ein kurzes Beispielprogramm: | |||||
Variablen.java | ||||||
1: //Variablen 2: //Definiton einer Klasse (siehe Kapitel 4) 3: class Variablen 4: { 5: //Definiton einer Methode (siehe Kapitel 4) 6: public static void main (String[] args) 7: { 8: //Definitonen und Wertzuweisungen der Variabeln 9: // Definiton einer Ganzzahlvariablen 10: int a; 11: /* Definition und Initialisierung einer 12: * Double-Variablen 13: */ 14: double d=-1.234535657765484; 15: // Zuweisung des Wertes 34 an die Variable a 16: a=34; 17: // Definition einer bool'schen Variablen 18: boolean b=true; 19: /* Definition einer Zeichenvariablen mit 20: * Wertzuweisung 21: */ 22: char c='d'; 23: 24: /* Ausgabe der Variablen 25: * Mit System.out.println(xxx) wird xxx auf der 26: * Standardausgabe ausgegeben (meist der 27: * Bildschirm). Erläuterungen werden im 28: * 4. Kapitel folgen. 29: */ 30: System.out.println("a="+a); 31: System.out.println("b="+b); 32: System.out.println("c='"+c+"'"); 33: System.out.println("d="+d); 34: }//main(String[]) 35: }//class | ||||||
Kompiliert und ausgeführt wird diesmal mit:
|
||||||
Operatoren | Die algebraischen und relationalen Operatoren sind größtenteils selbsterklärend. So werden Ganzzahlvariablen beispielsweise mit "+" addiert, und mit "==" auf Gleichheit getestet. Die logischen Operatoren "und" und "oder" sind mit "&&" bzw. "||" realisiert. Sollten weiterführende Operatoren benötigt werden, so werde ich sie im Kontext erläutern. |
|||||
Bedingungen und Schleifen | Bedingungen werden durch das Schlüsselwort if, gefolgt von der in runden Klammern stehenden Bedingung, eingeleitet. Danach folgt ein Anweisungsblock, der ausgeführt wird, wenn die Bedingung wahr ist. Optional folgt darauf das Schlüsselwort else und ein weiterer Anweisungsblock. Dieser wird ausgeführt, wenn die Bedingung falsch ist. Zu beachten ist, dass Bedingungen immer (auch bei den Schleifen) in runden Klammern stehen, während der Anweisungsblock in geschweiften Klammern steht: | |||||
1: if(Bedingung) 2: { 3: //Anweisungen 4: } 5: else 6: { 7: //Anweisungen 8: } | ||||||
Die Sclüsselwörter while, do und for leiten in Java Schleifen ein. Bei der while-Schleife(kopfgesteuerte Schleife) steht die Bedingung, unter der die Schleife wiederholt werden soll, hinter dem while. Sie wird gefolgt von dem zu wiederholendem Anweisungsblock: | ||||||
1: while(Bedingung) 2: { 3: //Anweisungen 4: } | ||||||
Ist die Bedingung schon am Anfang falsch, so wird der Anweisungsblock gar nicht durchlaufen. Im Gegensatz dazu wird der, dem do direkt folgende, Anweisungsblock der do-Schleife(fussgesteuerte Schleife) mindestens einmal ausgeführt. Die Bedingung steht deshalb hinter einem, sich an den Anweisungsblock anschließendem, while: | ||||||
1: do 2: { 3: //Anweisungen 4: }while(Bedingung) | ||||||
Die for-Schleife(Zählschleife) hat folgende Syntax: | ||||||
1: for(Startwert; Bedingung; Inkrement) 2: { 3: //Anweisungen 4: } | ||||||
Meist wird beim Startwert eine Variable definiert, die pro Durchlauf um eins erhöht wird. Der Anweisungsblock wird dann solange ausgeführt, wie die Variable kleiner als ein weiterer angegebener Wert ist. Andere Formen sind auch möglich. Das folgende Beispielprogramm zeigt die Anwendung von Bedingungen und Schleifen. Das Programm berechnet die Teiler von Zahlen eines bestimmten Bereiches. | ||||||
Teiler.java | ||||||
1: //Teiler 2: class Teiler 3: { 4: public static void main(String[] args) 5: { 6: //Variablen Definitionen 7: //untere Grenze des Bereiches 8: int i=1; 9: //obere Grenze des Bereiches 10: int a=20; 11: //erster Teiler der aktuellen Zahl? 12: boolean erster; 13: do 14: { 15: System.out.print("Teiler von "+i+" sind: "); 16: /*der nächste ausgegebene Teiler ist der 17: *erste dieser Zahl 18: */ 19: erster=true; 20: //jede Zahl <= i wird durchlaufen 21: for(int j=1; j<=i; j++) 22: { 23: /* es wird geprüft ob die Division von 24: * i/j den Rest 0 lässt (% ist der 25: * Modulooperator), ist dies der Fall, 26: * ist j Teiler von i, und j wird 27: * ausgegeben 28: */ 29: if(i%j==0) 30: { 31: /* Wenn erster wahr ist, j also der 32: * erste Teiler der Zahl ist, wird 33: * j ohne Seperator ausgegeben. 34: * Danach wird erster auf false 35: * gesetzt, da der nächste Teiler 36: * nicht mehr der erste ist. 37: */ 38: if(erster) 39: { 40: System.out.print(" "+j); 41: erster=false; 42: } 43: /* Ist erster falsch, wird j mit 44: * Seperator ausgegeben. 45: */ 46: else 47: { 48: System.out.print("; "+j); 49: } 50: }//if 51: }//for 52: /*i wird um eins erhöht 53: *(++ ist eine Abkürzung für i=i+1) 54: */ 55: i++; 56: //und eine neue Zeile angefangen 57: System.out.println(); 58: /*solange i<=a ist, wiederhole das 59: *für jede weitere Zahl 60: */ 61: }while(i<=a); 62: }//main(String[]) 63: }//class | ||||||
Felder | Felder werden in Java wie einfache Variablen deklariert, mit dem Unterschied, dass man eckige Klammern an den Datentyp anhängt : | |||||
1: //Deklaration eines Integer-Arrays 2: int[] zahlen; 3: //Deklaration eines boolean-Arrays 4: boolean[] b; | ||||||
Um ein Array nun zu initialisieren gibt es zwei Möglichkeiten: Bei der ersten wird nur die Länge angegeben. Die einzelnen Elemente werden mit Standardwerten belegt: | ||||||
1: //Initialisierung von zahlen mit 3 Integer-Werten 0 2: zahlen=new int[3]; 3: //Initialisierung von mit 6 boolean-Werten false 4: b=new boolean[6]; | ||||||
Bei der zweiten Möglichkeit übergibt man die einzelnen Elemente in geschweiften Klammern an das Array: | ||||||
1: zahlen={3,4,123}; 2: b={true,false,true,true,false,false}; | ||||||
Wie bei einfachen Variablen können Deklaration und Initialisierung zusammengelegt werden: | ||||||
1: int[] zahlen=new int[3]; 2: boolean[] b={true,false,true,true,false,false}; | ||||||
Auf einzelne Elemente kann nun folgendermaßen zugegriffen werden: | ||||||
1: //setzt den 3.Wert von zahlen auf 25 2: zahlen[2]=25; 3: //erzeugt eine boolean-Variable und initialisiert 4: //sie mit dem 2.Element von b 5: boolean a=b[1]; | ||||||
Zu beachten ist, dass die Indexnummerierung bei 0 beginnt. Das erste Element eines Arrays hat also den Index 0, das Zweite 1 usw. |
||||||
Abschluss | Diese Grundlagen sollten ausreichen, um nun auf die Objektorienierung in Java überzugehen. |