730 likes | 865 Views
Einführung in die Programmierung in JAVA AG SS 2003 Veranstalter: Tim Stockheim <stockheim@wiwi.uni-frankfurt.de> Jochen Franke <jfranke@wiwi.uni-frankfurt.de> Daniel Beimborn <beimborn@wiwi.uni-frankfurt.de> Donnerstag 14.00 – 16.00 Uhr – Raum 220 C. Ablaufplan.
E N D
Einführung in die Programmierung in JAVA AG SS 2003 Veranstalter: Tim Stockheim <stockheim@wiwi.uni-frankfurt.de> Jochen Franke <jfranke@wiwi.uni-frankfurt.de> Daniel Beimborn <beimborn@wiwi.uni-frankfurt.de> Donnerstag 14.00 – 16.00 Uhr – Raum 220 C Grundlagen der Java-Programmierung
Ablaufplan • 8.05.2003 Installation des JDK,Variablen, arithmetische Operatoren, Schleifen • 15.05.2003 logische Operatoren, Bedingungen, Methoden, Eclipse als IDE • 22.05.2003 Klassenkonzept und Vererbung, Pakete, Beispiele • 05.06.2003 Exceptions, weitere Programmbeispiele • 12.06.2003Input/Output- Operationen auf Datei- system und Netzwerkebene Grundlagen der Java-Programmierung
Die Programmiersprache JAVA • Literaturhinweise zu Java: • Guido Krüger: Handbuch der Java-Programmierung, 3. Auflage Addison-Wesley, 2002kostenlos im Netz: http://www.javabuch.de • David Flanagan: Java in a Nutshell, O‘Reilly Verlag, 4. Auflage, 2000 • David Flanagan: Java Examples in a Nutshell, O‘Reilly, 2. Auflage, 2001 WWW-Adresse: http://www.javasoft.com Grundlagen der Java-Programmierung
Java Einführung Tim Stockheim Grundlagen der Java-Programmierung
Die Programmiersprache JAVA • Entwickelt von SUN Microsystems mit dem Ziel einer Programmiersprache für PDAs • Sprachkonzept erwies sich als ideal für die Anforderungen des WWW • Erste Version 1995 vorgestellt • Syntax ähnelt der von C bzw. C++, inhaltlich bestehen aber deutliche Unterschiede Grundlagen der Java-Programmierung
JAVA ist plattformunabhängig • Weil sich Java-Programme in ein plattformunabhängiges Byte-Codeformat übersetzen lassen, kann eine Java-Anwendung auf jedem System ausgeführt werden, solange auf diesem System die Java Virtual Machine implementiert ist. Grundlagen der Java-Programmierung
JAVA ist plattformunabhängig • Das ist insbesondere für Anwendungen wichtig, die über das Internet oder andere heterogene Netzwerke verteilt werden. • Ein architekturunabhängiger Ansatz ist aber auch über den Rahmen netzwerkbasierter Anwendungen hinaus sinnvoll. Grundlagen der Java-Programmierung
JAVA ist objektorientiert • In einem objektorientierten System besteht eine Klasse aus einer Reihe von Daten, sowie aus Methoden, die mit diesen Daten arbeiten. • Zusammengenommen beschreiben Daten und Methoden den Zustand und das Verhalten eines Objekts. Grundlagen der Java-Programmierung
JAVA ist objektorientiert • Klassen werden in einer Hierarchie angeordnet, so dass Unterklassen das Verhalten von übergeordneten Klassen (Superklassen) erben können. • Eine Klassenhierarchie besitzt immer eine Stammklasse. Diese Klasse besitzt ein sehr allgemeines Verhalten. Grundlagen der Java-Programmierung
Animal Dogs Cats Jochen Daniel Tim Grundlagen der Java-Programmierung
JAVA ist objektorientiert • Java wird mit einem sehr umfangreichen Satz von Klassen ausgeliefert. Diese sind in Paketen angeordnet, die in den Programmen verwendet werden können. • Beispielsweise stellt Java Klassen zur Verfügung, mit denen Komponenten grafischer Benutzerschnittstellen erzeugt werden können (das java.awt-Paket). Grundlagen der Java-Programmierung
JAVA ist objektorientiert • Java stellt Klassen zur Verfügung, mit denen die Ein- und Ausgabe behandelt wird (das java.io-Paket), sowie Klassen, die die Netzwerkfunktionalität unterstützen (das java.net-Paket). Grundlagen der Java-Programmierung
JAVA ist interpretiert • Java ist eine interpretierte Sprache: Der Java-Compiler erzeugt einen Byte-Code für die Java Virtual Machine (JVM) und keinen direkten Maschinencode. • Um ein Java-Programm auszuführen, wird der Java-Interpreter benutzt, der den kompilierten Byte-Code ausführt. Grundlagen der Java-Programmierung
Begriffe • Eigenständige Applikation ("normales, ausführbares Programm") • Applet: • innerhalb eines Web-Browser oder eines Applet-Viewer ausführbar. • Container bildet zweites Betriebssystem • teilt Einschränkungen des Web-Browsers: • kein Lese-Zugriff auf Dateisystem des Clientrechner (außer: Benutzer erlaubt es) • nur Verbindung zum Host, von dem es geladen wurde • keine Möglichkeit des Starts von auf dem Clientrechner vorhandenen Programmen Diese Modell wird auch als Sandbox bezeichnet. Grundlagen der Java-Programmierung
Java Development Kit (JDK) • Plattformen: • Windows, Macintosh, Linux, Sun Solaris, ... • Befehlszeilenorientiertes Tool • JDK - Zusammensetzung aus mehreren Tools: • Compiler: javac • Interpreter: java • Disassembler: javap • Appletviewer: appletviewer • ... Grundlagen der Java-Programmierung
JAVA Tutorial Grundlagen der Java-Programmierung
JAVA: Die Syntax • Jede Anweisung muß mit einem Semikolon (;) abgeschlossen werden. • JAVA unterscheidet Groß-/Kleinschreibung, d.h. z.B. "anzahl" ungleich "Anzahl". • Beliebiges Einfügen von Leerzeichen / Leerzeilen zwischen Anweisungen zulässig. • Kommentare innerhalb eines JAVA-Programms werden mit "/*" eingeleitet und mit "*/" beendet, z.B. /* Dies ist ein Kommentar */ • Kommentare, die nur bis zum Zeilenende gehen, werden mit "//" eingeleitet, z.B. // Kommentar Grundlagen der Java-Programmierung
Beispiel 1 class HelloWorld { public static void main( String[] args) { System.out.println(“Hello World!“); } } • Dieses Programm besteht, wie jedes Java-Programm, aus einer Klassendefinition vom Typ public. Grundlagen der Java-Programmierung
Beispiel 1 • Die Klasse enthält eine Methode namens main(), die den Einstiegspunkt für alle Java-Anwendungen darstellt, d.h. an diesem Punkt beginnt der Java-Interpreter mit der Ausführung des Programms. • main()selbst besteht nur aus einer einzigen Zeile, die unsere Nachricht ausgibt: Hello World! Grundlagen der Java-Programmierung
Beispiel 1 • Das Programm muß in einer Datei gesichert werden, die den gleichen Namen besitzt, wie die public-Klasse, wobei noch die Erweiterung .java anzuhängen ist. • Um das Programm zu kompilieren, verwendet man javac C:\>javac HelloWorld.java • Dieser Befehl erzeugt die Datei HelloWorld.class im aktuellen Verzeichnis. Grundlagen der Java-Programmierung
Beispiel 1 • Um das Programm auszuführen, wird der Java-Interpreterjava verwendet: C:\>java HelloWorld • Beachten Sie beim Aufruf des Interpreters, daß der Dateiname ohne das anhängende .class angegeben wird. Grundlagen der Java-Programmierung
JAVA: Variablen • Variablen repräsentieren Speicherplätze zur Aufnahme veränderlicher Werte in einem Programm. • erlaubte Zeichen für Variablennamen: • Buchstaben des engl. Alphabets (ohne Umlaute), • 10 Ziffern, • Unterstrich "_". • Die erste Stelle darf keine Ziffer sein! • Programmierer dürfen keine reservierten Wörter für eigene Namen verwenden (z.B. main, int,...) Grundlagen der Java-Programmierung
JAVA: Datentypen • Alle Variablen müssen deklariert werden, bevor sie benutzt werden können. • Notation für Variablendeklaration: Datentyp variable1,...,variablen; • Bedeutung: Variable1,...,Variablen sind vom angegebenen Datentyp. • Beispiel: int v1, v2, v3; char v4; byte v5; Grundlagen der Java-Programmierung
JAVA: Datentypen • Datentypen definieren Struktur und Wertebereiche der von einem Programm zu verarbeitenden Daten. • elementare Datentypen in JAVA (Call by value): boolean - Wahrheitswert byte, short, int, long - ganze Zahlen Beispiel: int a; // erzeugt eine Variable vom Typ int. boolean b = true; /* erzeugt einen Wahrheitswert und setzt diesen auf true */ Grundlagen der Java-Programmierung
Solange (Bedingung)erfüllt ist: führe Anweisungen aus! Wiederholung Schleife: while ( Bedingung) { Anweisung1; Anweisung2; … AnweisungN; } • Beispiel: • Anweisungen: i = i + 1; • Ausgabe von “Zähler ist: “ + i • Bedingung: (i < 10) Grundlagen der Java-Programmierung
Ablaufstruktur: Wiederholung Beispiel für Ablauf mit Wiederholung: class Schleife { /* Diese Klasse testet, das Zählen von 1 bis 10! */ public static void main(String[] args) { int i = 0; while (i<10) { i=i+1; System.out.println(„Zähler: "+i); } } } Grundlagen der Java-Programmierung
JAVA: Datentypen • weitere elementare Datentypen in Java float Gleitkommazahl double Gleitkommazahl char einzelnes Zeichen Grundlagen der Java-Programmierung
Gleitkommazahlen (Fließkommazahlen, Floating Point Numbers) • zur näherungsweisen Darstellung reeller Zahlen auf Rechnern. • Zahlen werden dargestellt in der Form m . be • b, e ganze Zahlen • m = Mantisse, gibt Zahlenwert an • e = Exponent, charakterisiert die Größenordnung der Zahl • b = Basis (z.B. 10) • z.B. 12.25: 0.1225 . 102 122.5: 0.1225 . 103 Grundlagen der Java-Programmierung
JAVA: Arithmetik Operatoren werden nur auf elementare Datentypen (und Strings [+]) angewendet. + Addition - Subtraktion; Vorzeichen * Multiplikation / Division (int-Typen: ganzzahliger Anteil: 17/3 = 5) % Divisionsrest (nur bei int-Typen: 17%3 = 2) Grundlagen der Java-Programmierung
Java Einführung - Beginn zweiter Teil - Grundlagen der Java-Programmierung
JAVA: Arrays • Felder zur Erfassung mehrerer Variablen vom selben Typ • Arrays müssen initialisiert werden. • Auslesen bzw. beschreiben darf nur im initialisierten Bereich erfolgen. Beispiel: int[] b = new int[10]; /* erzeugt ein Feld vom Typ int mit 10 Speicherplätzen */ Grundlagen der Java-Programmierung
JAVA: Arrays • Beispielprogramm: public class Schleife2 { public static void main( String[] args) { int a[] = new int[10]; int i = 0; a[0] = 2; while (i<10) { System.out.println( "a["+i+"] ist : "+a[i]); i = i+1; a[i] = 2*a[i-1]; } } } Grundlagen der Java-Programmierung
JAVA: Methoden • Eine Methode besteht aus der Deklaration und einem Methodenkörper, wobei dieser in geschweiften Klammern steht. Bsp.:public boolean funct ( int a) { return true; } • public gibt hier die Zugriffsberechtigungen an (jeder) • boolean bedeutet, dass die Methode einen boolean-Wert zurückgeben muss ( true oder false) • int a beschreibt, den Typ und Namen des übergebenen Wertes, wobei a dem Namen innerhalb der Methode entspricht Grundlagen der Java-Programmierung
JAVA: Methoden • "void" weist darauf hin, daß eine Funktion keinen Funktionswert zurückgibt. Bsp.:void funct( int a) gibt keinen Funktionswert zurück. • Falls kein Eingabeparameter benötigt wird, verwendet man ein leeres Klammerpaar: Bsp.:int funct() kann kein Wert übergeben werden Grundlagen der Java-Programmierung
ausdruck nein ja anweisung1 anweisung2 Ablaufstruktur: Alternative if (ausdruck) { anweisung1; } else { anweisung2; } Grundlagen der Java-Programmierung
Logische Ausdrücke(Bedingungen) Logische Operatoren werden nur auf elementare Datentypen. && AND || OR ! NOT (einfaches & oder | auch möglich beide Seiten werden dann garantiert ausgeführt.) Grundlagen der Java-Programmierung
Ausdruck Fall 1 ... others Anw. 1 Fall N Ausnahme- Anw. Anw. N Ablaufstruktur: Alternative • Switch-Bedingung Grundlagen der Java-Programmierung
Ablaufstruktur: Alternative Switch-Bedingung class unterscheidung { public static void main(String[] args) { int zahl; zahl = Integer.parseInt(args[0]); switch(zahl) { case 1: System.out.println("sehr gut"); break; case 2: System.out.println("gut"); break; case 3: System.out.println("befriedigend"); break; case 4: System.out.println("ausreichend"); break; case 5: System.out.println("mangelhaft"); break; default: System.out.println("Falsche Eingabe!"); } } } Grundlagen der Java-Programmierung
While bedingung anweisung Ablaufstruktur: Wiederholung • abweisende Schleife while ( bedingung) anweisung; • Bedeutung: • Solange bedingung "wahr" (true) ist, wird anweisung ausgeführt. • Abbruchtest vor jedem Schleifendurchlauf. Grundlagen der Java-Programmierung
Ablaufstruktur: Wiederholung Abweisende Schleife: while class Produkt2 { public static void main(String[] args) { int produkt = 1; int i = 0; while ( Integer.parseInt(args[i]) != 0) { produkt *= Integer.parseInt(args[i]); i++; // gleichbedeutend mit i=i+1; } System.out.println("Ergebnis: "+produkt); } } Grundlagen der Java-Programmierung
anweisung do while bedingung Ablaufstruktur: Wiederholung • Wiederholung: annehmende Schleife do anweisung; while (bedingung) • Bedeutung: • anweisung wird ausgeführt, solange bedingung „wahr“ ist. • Abbruchtest nach dem Schleifendurchlauf. • anweisung wird also mindestens einmal ausgeführt. Grundlagen der Java-Programmierung
Ablaufstruktur: Wiederholung Annehmende Schleife: do ... while class Produkt3 { public static void main(String[] args){ int produkt = 1; int i = 0; do { produkt *= Integer.parseInt(args[i]); i++; } while ( Integer.parseInt(args[i]) != 0); System.out.println( "Ergebnis: "+produkt); } } Grundlagen der Java-Programmierung
Exkurs: Wiederholungfor-Schleife Schleife: for( Initialisierung; Bedingung; Änderung) { … } class Produkt3 { public static void main(String[] args){ int produkt = 1; for( int i=0; i<args.length; i++) { produkt *= Integer.parseInt(args[i]); } System.out.println( "Ergebnis: "+produkt); } } Grundlagen der Java-Programmierung
Kommandozeilen-argumente • Das einzige Argument an main()ist ein Array von Strings, der üblicherweise args genannt wird. • Die Länge dieses Arrays ist über args.length verfügbar. • Die Elemente dieses Arrays sind die Argumente, die in der Kommandozeile nach dem Klassennamen angegeben wurden. • Beispiel 2 zeigt ein Programm, das einfach seine Argumente ausgibt: Grundlagen der Java-Programmierung
Beispiel 2 class echo { public static void main(String[] args) { for( int i=0; i < args.length; i++) System.out.print(args[i] + “ “); System.out.print(“\n“); System.exit(0); } } • Zu beachten: main()muß so deklariert sein, daß es void zurückgibt. • Aus einem Java-Programm kann also kein Wert zurückgegeben werden, indem eine return-Anweisung in main() verwendet wird. Grundlagen der Java-Programmierung
Beispiel 2 • Wenn ein Wert zurückgeliefert werden soll, wird System.exit() mit dem gewünschten Integer-Wert aufgerufen(vgl. Beispiel 2). • Zu beachten: die Verarbeitung und Interpretation dieses Exit-Wertes hängt vom Betriebssystem ab. Grundlagen der Java-Programmierung
Einführung in Klassen und Objekte • Eine Klasse ist eine Sammlung von Daten sowie von Methoden, die mit diesen Daten arbeiten. • Die Daten und Methoden dienen zusammengenommen üblicherweise dazu, den Inhalt und die Fähigkeit irgendeiner Art von Objekt zu definieren. Grundlagen der Java-Programmierung
Einführung in Klassen und Objekte • Zum Beispiel kann ein Kreis durch die X/Y-Position seines Mittelpunktes und durch seinen Radius beschrieben werden. • Auf Kreisen können verschiedene Operationen ausgeführt werden: ihren Umfang berechnen; ihre Flächen berechnen; prüfen, ob bestimmte Punkte innerhalb des Kreises liegen usw. Grundlagen der Java-Programmierung
Einführung in Klassen und Objekte • Jeder konkrete Kreis besitzt individuelle Werte (d.h. einen konkreten Mittelpunkt und Radius), aber als Klasse betrachtet besitzen Kreise bestimmte gemeinsame Eigenschaften, die in einer Definition zusammengefaßt werden können. • Zu beachten: die Klassendefinition im folgenden Beispiel 3 enthält Daten und Methoden. Grundlagen der Java-Programmierung
Beispiel 3 public class Circle { public double x, y; // Die Koordinaten des // Mittelpunktes. public double r; // Der Radius. /* Methoden zur Ermittlung des Umfangs und der Fläche des Kreises */ public double circumfence() { return 2 * 3.14159 * r; } public double area() { return 3.14159 * r*r; } } Grundlagen der Java-Programmierung