OOP mit Java Oder: Java in 5 Tagen. 1. Tag Klassen und Methoden Hello World in Variationen Von Menschen und Geschlechtern Horden (Schlange stehen)

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

der Universität Oldenburg
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Einführung in die Programmierung Ausführbare Klassen
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Imperative Programmierung -Entwicklungswerkzeuge
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik F Verteilte Software - Java.
Internetzugriff mit Strings und Streams
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
Ausnahmen HS Merseburg (FH) WS 06/07.
FH-Hof Sockets in Java Richard Göbel. FH-Hof Kommunikation über das Internet - Grundlagen Ein Rechner wird im Internet über die so genannte IP- Adresse.
Java: Grundlagen der Sprache
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
SWITCH - Anweisung.
Verzweigung oder bedingte Anweisung Weiter mit PP.
IF-ELSE-IF-Ketten Weiter mit PP..
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Dynamische Webseiten Java servlets.
Java-AG Ausnahmebehandlung Gerhard Gröger.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Packages Vortrag : Cornelia Hardt 23. November 1999.
DVG Ausnahmen. DVG Was sind Programmfehler? 4 Programm erzielt gar kein Ergebnis. 4 Berechnetes Ergebnis stimmt nicht mit dem erwarteten.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Ausnahmen1 Ausnahmen. DVG Ausnahmen 2 Was sind Programmfehler? Programm erzielt gar kein Ergebnis. Berechnetes Ergebnis stimmt nicht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Datenströme DVG Datenströme.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Learning By Doing TCP/IP Netzwerke mit TCP/IP Das Internet verwendet weitgehend das rund 30-jährige TCP/IP-Protokoll (TCP: Transmission Control Protocol,
Socket-Programmierung
Copyright 2007 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2007/08 Kapitel 10, Folie 1 2 Dr. Christian Herzog Technische.
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
Optimale Ursprungsgerade
EPROG Tutorium #3 Philipp Effenberger
Starten der Entwicklungsumgebung (IDE)
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Programmiervorkurs WS 2014/15 Methoden
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Programmierpraktikum Java SS 2005 Mag.Thomas Hilpold.
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Ausnahmen Vorlesung besteht aus zwei Teilen Programmierung (4 SWS)
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java-AG Datenstreams: Dateibehandlung, Lesen aus und schreiben in eine Datei.
IKG Dörschlag, Plümer, Gröger „Einführung in die Programmierung mit Java“ WS03/04 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung.
Programmierkurs JavaUE 4 Anweisungen und ProgrammeDietrich BolesSeite 1 Programmierkurs Java Dr. Dietrich Boles Teil Imperative Programmierung Unterrichtseinheit.
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_ Ausnahmen (Exceptions)
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Java Programme nur ein bisschen objektorientiert.
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
Ein-/ Ausgabe in Java ein Überblick. © eigentlich ganz einfach ? Ein-/Ausgabe durch package java.io Ausgabe (auf Konsole) mit System.out.println()
Java I/O Input / Output stream Library
Java I/O Input / Output stream Library
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Hello World! Javakurs 2013 Arne Kappen
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Cäsar-Verschlüsselung
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Schleifen mit der Turtle
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Cäsar-Verschlüsselung
«Delegierter» Methoden Schablone Funktionszeiger
 Präsentation transkript:

OOP mit Java Oder: Java in 5 Tagen

1. Tag Klassen und Methoden Hello World in Variationen Von Menschen und Geschlechtern Horden (Schlange stehen)

Klassen und Methoden In Java ist alles eine Klasse Klassen und Filename müssen identisch sein Klassen können zu Paketen zusammengefasst werden public class meineKlasse { // hier kommt mehr... }

Klassen und Methoden Klassen können Daten und Methoden beinhalten public class meineKlasse { publicint a=0; public void tuWas() { } public void tuNix() { }

Klassen und Methoden Schreiben Sie die Klasse (mit dem ASCII-Editor Ihrer Wahl), kompilieren Sie sie und starten Sie sie. public class meineKlasse { publicint a=0; public void tuWas() { } public void tuNix() { }

Klassen und Methoden Es gibt eine spezielle Methode ‚main‘, die als Startpunkt dient. public class test { public static void main(String args[]) { // unser Programm... System.out.println("Hello World!"); }

Klassen und Methoden Die meisten Typen sind Klassen. public class helloWorld { public static void main (String args[]) { String hw = new String("Hello World."); System.out.println(hw); }

Klassen und Methoden Eine Schleife kommt hinzu... public class helloWorld { public static void main (String args[]) { String hw = new String("Hello World."); System.out.println(hw); int i; for (i=1; i<hw.length(); i++) { System.out.println(hw.charAt(i)); }

Klassen und Methoden Übung... Hello World. ee l o W o r l d.

mann.java menschen.java Von Menschen und Geschlechtern Eigene Klassen... public class mann { } public class menschen { public static void main (String args[]) { mannhans = new mann(); }

mann.java menschen.java Von Menschen und Geschlechtern public class mann { public void tuwas() { System.out.println("Fussball sehen..."); } public class menschen { public static void main (String args[]) { mannhans = new mann(); hans.tuwas(); }

menschen.java Von Menschen und Geschlechtern Schreiben Sie die Klasse ‚frau‘. public class menschen { public static void main (String args[]) { mannhans = new mann(); frauemma = new frau(); hans.tuwas(); emma.tuwas(); }

menschen.java Von Menschen und Geschlechtern Führen Sie eine ‚Warteschlange‘ ein. public class menschen { public static void main (String args[]) { mann[] schlange = new mann[10]; for (int i=0; i<10; i++) { schlange[i] = new mann(); schlange[i].tuwas(); }

menschen.java Von Menschen und Geschlechtern Jetzt kommt der Trick, wir möchten Männer und Frauen in der Schlange stehen haben... public class menschen { public static void main (String args[]) { ???[] schlange = new ???[10]; for (int i=0; i<10; i++) { schlange[i] = waehleGeschlechtZufaellig(); schlange[i].tuwas(); }

mann.java mensch.java Von Menschen und Geschlechtern Vererbung & co. public class mann extends mensch { public void tuwas() { System.out.println("Fussball sehen..."); } public class mensch { public void tuwas() { System.out.println("Ich bin nur einm Mensch..."); }

menschen.java Von Menschen und Geschlechtern (Warte-) Schlange... public class menschen { public static void main (String args[]) { mensch[] schlange = new mensch[10]; for (int i=0; i<10; i++) { if (i % 2 == 0) schlange[i] = new mann(); else schlange[i] = new frau(); schlange[i].tuwas(); }

2. Tag Parameter lesen ‚echo‘ I/O Exceptions Gehaltsschecks ‚cat‘, ‚wc‘, ‚mailto‘,... Optional: Quiz

Parameter lesen In args[] werden die Parameter gespeichert, die Sie ihrem Programm übergeben. Die Anzahl der Elemente eines Arrays erhalten Sie mit array.length Schreiben Sie ein Programm analog zum ‚echo‘-Programm

echo.java Parameter lesen Unser ‚echo‘-Programm... public class echo { public static void main (String args[]) { System.out.print("Anzahl der Parameter: “); System.out.println(args.length); for (int i=0; i<args.length; i++) { System.out.println(args[i]); }

I/O - Eigentlich ganz einfach ? Ein-/Ausgabe durch package java.io Ausgabe (auf Konsole) mit System.out.println() Eingabe (von Konsole) mit System.in.readln()? –System.in ist vom Typ java.io.InputStream –Methoden wie read(byte[]) ? –keine Strings,... Streams lesen und schreiben einzelne Bytes –normalerweise (?) ASCII/Unicode Zeichen Reader/Writer –ggf. gepuffert BufferedReader/Writer

I/O - Streams Folge von Bytes können zum Lesen und Schreiben von Bytes verwendet werden woher/wohin ? z.B. FileInputStream Streams als Schnittstelle zwischen Anwendung und Daten Für Text EA –InputStreamReader/OutputStreamWriter Pufferung –BufferedReader/BufferedWriter

I/O - Beispiele // Einlesen von Tastatur InputStreamReader isr = new InputStreamReader(System.in); BufferedReader in = new BufferedReader(isr); String s = in.readLine(); while (s != null) { System.out.println(s); s = in.readLine(); } AnwendungBufferedReaderInputStreamReaderInputStream

I/O - Einschub Exceptions Fehlerbehandlung im 'normalen' Code InputStreamReader isr = new InputStreamReader(System.in); if (isr == null) { System.out.println("Fehler beim Oeffnen!"); System.exit(0); } else { BufferedReader in = new BufferedReader(isr); if (in == null) { System.out.println("Fehler beim Lesen!"); System.exit(0); } else {... } }

I/O - Einschub Exceptions vom Code getrennt InputStreamReader isr = new InputStreamReader(System.in); if (isr == null) { iStatus = ERR_OPEN; goto Error; } BufferedReader in = new BufferedReader(isr); if (in == null) { iStatus = ERR_READER; goto Error; }... Error: switch (iStatus)...

I/O - Einschub Exceptions ähnlich goto, aber 'sauberer' try { InputStreamReader isr = new InputStreamReader(System.in); if (isr == null) throw new IOException("Error opening"); BufferedReader in = new BufferedReader(isr); if (in == null) throw new IOException("Error in Reader");... } catch (IOException e) { }

I/O - Einschub Exceptions oder gleich 'eingebaut‘ (Vordefiniert) try { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader in = new BufferedReader(isr);... } catch (IOException e) { }

I/O - Einschub Exceptions try { // some code } catch (SomeException e1) { // do something } catch (SomeOtherException e2) { // do something else } finally { // always executed } Syntax

// Einlesen aus Datei FileReader f = new FileReader("x.dat"); BufferedReader in = new BufferedReader(f); String s = in.readLine(); // readLine() liefert am Dateiende null while (s != null) { System.out.println(s); s = in.readLine(); } I/O - Lesen aus Datei AnwendungBufferedReaderFileReaderFile

// Einlesen aus String StrigReader s = new StringReader("Hallo\nWelt\n"); BufferedReader in = new BufferedReader(s); String s = in.readLine(); while (s != null) { System.out.println(s); s = in.readLine(); } I/O - Lesen aus einem String AnwendungBufferedReaderStringReaderString

// Einlesen von URL URL U = new URL(" BufferedReader in = new BufferedReader( new InputStreamReader(U.openStream())); String s = in.readLine(); while (s != null) { System.out.println(s); s = in.readLine(); } AnwendungBufferedReaderInputStreamReaderURL I/O - Lesen aus dem Netz

// Ausgabe in Datei try { FileWriter fw = new FileWriter("y.dat")); PrintWriter pw = new PrintWriter(fw); pw.println("Hallo Welt!");... pw.close(); } catch (Exception e) { } AnwendungPrintWriterFileWriterFile I/O - Ausgabe in Datei

try { FileOutputStream os = new FileOutputStream("y.gz"); GZIPOutputStream zos = new GZIPOutputStream(os); PrintWriter pw = new PrintWriter(zos); pw.println("Hallo Welt!"); pw.close(); } catch (Exception e) { } AnwendungPrintWriterGZIPOutputStreamFileOutputStream I/O - Ausgabe mal anders File

I/O - Zusammenfassung I/O in Java ist, verglichen mit anderen Sprachen –im Sprachumfang enthalten (vgl. C) –erheblich komplexer –erheblich flexibler –genauso effizient –nicht nur für 'normale' Dateien, sondern auch etwa für Netzwerk Archive Datenbanken

I/O - Übungen Programm “cat" –gibt Datei auf Konsole aus –Erweiterung: seitenweise Programm "wc" –Zählt die Zeilen in einer Datei –Erweiterung: auch die Wörter und Buchstaben Programm "metric" –Bestimmt die maximale/mittlere Schachtelungstiefe in einem Java Programm Programm "copy" –kopiert Dateien (binär!) Programm "grep" –durchsucht Dateien nach Muster (Zeichenfolge)

I/O - Ein BSP zusammen... import java.io.*; public class cat { public static void main (String args[]) { try { FileReader f = new FileReader(args[0]); BufferedReader in = new BufferedReader(f); String s = in.readLine(); while (s != null) { System.out.println(s); s = in.readLine(); } catch (Exception e) { System.out.println("Fehler!"); }

3. Tag Algorithmen Liste Baum ‚grep‘ (Zustandsautomat) Tic/Tak/Toe

4.+5. Tag Simulation –WaTor (Fischteich) (Christian) –Waldpfad –Soziale Distanzen (Till) –PacMan RoboWars