Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "OOP mit Java Oder: Java in 5 Tagen. 1. Tag Klassen und Methoden Hello World in Variationen Von Menschen und Geschlechtern Horden (Schlange stehen)"—  Präsentation transkript:

1 OOP mit Java Oder: Java in 5 Tagen

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

3 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... }

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

5 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() { }

6 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!"); }

7 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); }

8 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)); }

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

10 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(); }

11 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(); }

12 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(); }

13 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(); }

14 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(); }

15 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..."); }

16 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(); }

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

18 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

19 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]); }

20 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

21 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

22 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

23 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 {... } }

24 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)...

25 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) { }

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

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

28 // 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

29 // 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

30 // Einlesen von URL URL U = new URL("http://www.heise.de"); 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

31 // 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

32 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

33 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

34 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)

35 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!"); }

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

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


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

Ähnliche Präsentationen


Google-Anzeigen