Aktuelles
Stand: 24. 7. 2009
Stichworte zum Stoff der Vorlesung, Beispielprogramme und weitere Materialien zur Vorlesung Einstieg in die Informatik mit Java im Sommersemester 2009 des IANM2 werden hier im Laufe der Vorlesung bereitgestellt.
Die Folien sind im PDF-Format, Sie benötigen zur Anzeige ggf. den Acrobat Reader.
Sie dürfen Beispielprogramme und Foliensätze von dieser Seite zum Erlernen der Sprache Java verwenden. D.h. sie dürfen sie (auf eigenes Risiko) kopieren, ausdrucken, ausführen, verändern, erweitern, usw. Eine Veröffentlichung der Programme, z.B. als Aufgabensammlung, bzw. der Folien ist dagegen nicht erlaubt.
1. (Dienstag, 21.4.) Einführung
- Inhalt der Vorlesung
- Parallele Veranstaltungen Java und C++
- Organisation des Praktikums
- Was ist Java?
- Geschichte von Java
- Literaturangaben
- Folien zu Einführung
- Hinweise zu Software und Installation
- Programmbeispiele zum Vergleich von Java und C++:
2. (Mittwoch, 22.4.) Grundlagen
- Entwicklung eines einfachen Programms unter Linux: Editieren, Übersetzen, Ausführen
- Übertragung nach Windows: funktioniert ohne neu Übersetzen
- Hinweise zum Aufgabenblatt 1
- Programmbeispiele:
- HalloSS09.java ein typisches erstes Programm
- Sommerzeit.java Umrechnung von Winter- und Sommerzeit, ein kleines Programm mit Ein- und Ausgabe
- Grundelemente
- Kommentare
- Bezeichner
- Wortsymbole
- weitere Symbole
- Folien zu Grundelemente
- Vordefinierte Datentypen
- Ganze Zahlen
- Gleitkommazahlen
- Weitere Datentypen
- Folien zu Vordefinierte Datentypen
- Literalkonstanten
- Variable, Konstanten
- Folien zu Variablen
3. (Di, 28.4.) Ausdrücke
- Wiederholung Grundlagen
- Hinweise zum Praktikum
- Ausdrücke
- Arithmetische Ausdrücke, inklusive ++ und --
- Kombinierte Zuweisungen
- Logische Operatoren
- Weitere Operatoren
- Klassifizierung von Operatoren
- Typumwandlung
- Priorität der Operatoren
- Folien Ausdrücke
- Vorführung von Beispielen mit Dr. Java (www.drjava.org)
4. (Mi, 29.4.) Anweisungen
- Wiederholung zu Ausdrücken
- Rechnen mit Unendlich
- Anweisungen
- Ausdrucksanweisung
- Einfache Ausgabeanweisung
- Vorführung von Beispielen mit Dr. Java
- Einfache Eingabeanweisung
- Verbundanweisung
- Bedingte Anweisung
- for-Schleife
- while-Schleife
- do-Schleife
- Folien Anweisungen
- Beispiele: u.a. Verdoppeln, Maximum, Quersumme
- Hinweise zum Aufgabenblatt 2 mit Pflichtaufgabe
5. (Di, 5.5.) Wiederholung und Ergänzungen zu Anweisungen
- Wiederholung zu Anweisungen
- Weitere Anweisungen
- switch-Anweisung
- break
- continue
- Leere Anweisung
- Vorführung von Beispielen mit Dr. Java
- Beispiele zu Anweisungen am Laptop
- SwitchOps.java Auswahl aus mehreren Optionen mit if und switch (als Ersatz für das nicht funktionierende Beispiel unter Dr.Java)
- PaschWuerfeln.java typische Anwendung einer do-Schleife: solange würfeln bis Pasch kommt
- PaschZaehlen.java typischer Einsatz einer for-Schleife: n-mal würfeln und Paschs zählen
6. (Mi, 6.5.) Übungen
- Typische Einsatzgebiete von for- bzw. do-while-Schleifen
- Erzeugung und Bereichstransformation von Zufallszahlen
- Vorführung von hist-File mit Dr.Java
- Hinweise zu Aufgabenblatt 3
- Typischer Einsatz von if- bzw. switch-Anweisungen
- Beispiele zu Anweisungen am Laptop
- SwitchOps.java Auswahl aus mehreren Optionen mit if und switch
- SwitchOps2.java Auswahl aus mehreren Optionen mit if und switch mittels Zeichen statt Zahlen
- EFunktion.java Berechnung von exp(x) mit mehreren Formeln, Besprechung der Genauigkeitsprobleme durch Approximationsfehler und Rundungsfehler
7. (Di, 12.5.) Felder
- Beispiele zu Anweisungen
- EFunktion2.java Berechnung von exp(x) mit mehreren Formeln, geringere Genauigkeitsprobleme wenn Auslöschung vermieden wird
- WuerfelZaehlen5.java Würfelexperiment, nur ein Ergebnis testen
- Felder
- Vereinbarung von Feldern
- Erzeugen von Feldern
- Zugriff auf Feldkomponenten
- Mehrdimensionale Felder
- Folien Felder
- Beispiele zu Feldern
- WuerfelExperiment.java Würfelexperiment, alle Ergebnisse testen
8. (Mi, 13.5.) Methoden
- Wiederholung zu Feldern an Tafel
- Referenzdatentypen im Vergleich zu Grunddatentypen
- Konstruktion einer Matrix
- Hinweise zu Aufgabenblatt 4
- Methoden
- Methodendefinition
- Parameterübergabe, Aufruf
- Referenztypen bei Methoden
- Folien Methoden
- Beispiele zu Vektoren und Matrizen, z.T. mit Methoden
- VekAdd5.java Vektoraddition
- VekMul5.java Vektormultiplikation, Skalarprodukt
- MatAdd5.java Matrixaddition
- MatMul5.java Matrixmultiplikation
- VektorRechnung5.java Arbeiten mit Vektoren: Methoden für Eingabe, Ausgabe, Addition, Multiplikation mit Faktor, Skalarprodukt
9. (Di, 19.5.) Felder und Methoden
- Wiederholung zu Feldern
- Felder als Referenzdatentypen
- Wiederholung zu Methoden
- Ergänzungen zu Methoden
- Überladen
- Programmparameter
- Beispiele
- Vorführung von Beispielen mit Dr. Java
- ProgrammParameter.java Übergabe von Argumenten an ein Programm, Vorsicht bei Verwendung eines Größerzeichens: Ausgabeumleitung!
10. (Mi, 20.5.) Übungen
- Hinweise zu Aufgabenblatt 5
- Erläuterungen an Tafel zu LR-Zerlegung
- Ergänzungen zu Methoden
- Rekursion
- Beispiele zum Überladen von Methoden und zu Rekursion
- Ueberladen.java Überladen einer Methode
- Ueberladen2.java Überladen einer Methode
- Ueberladen3.java Überladen einer Methode
- Dreheum5.java Rekursive Methode zum Umdrehen einer Zahlenfolge
- PowerRek5.java Rekursive Methode zur Exponentiation
- Schneeflocke5.java Rekursive Methode zum Erzeugen einer fraktalen Kurve: Kochsche Schneeflocke
11. (Di, 26.5.) Sortieralgorithmen und Klassen als Datenstrukturen
- Sortierverfahren, Effizienz von Algorithmen
- Beispiele zum Sortieren
- BubbleSort3.java Sortieren eines int-Feldes mit Bubblesort
- CombSort.java Sortieren eines int-Feldes mit Combsort
- Klassen als Datenstrukturen
- Vereinbarung von Klassen
- Erzeugen von Objekten
- Zugriff auf Attribute
- Initialisierung
- Geschachtelte Datentypen
- Konstruktoren
- Referenzen
- Folien Klassen als Datenstruktur
12. (Mi, 27.5.) Klassen, Vererbung
- Wiederholung und Beispiele zu Klassen als Datenstrukturen
- Handy.java Klasse zur Beschreibung eines Handys
- Handy.txt Liste von 10 Handys, zum Einlesen
- CombSortHandyPreis.java Handys nach Preis sortieren mittels CombSort; Ausführen mit: java CombSortHandyPreis <Handy.txt
- CombSortHandyHM.java Handys nach Hersteller und Modell sortieren mittels CombSort; Ausführen mit: java CombSortHandyHM <Handy.txt
- Klassen
- Philosophie
- Datenkapselung
- Instanzen
- Zugriff auf Elemente
- Konstruktoren
- Folien Klassen
- Vererbung
- Grundlagen
- Verdeckte Variablen
- Verdeckte Methoden
- Konstruktoren und Vererbung
- Folien Vererbung
- Anleitung zu Aufgabenblatt 6
13. (Di, 2.6.) Klassen, Variablenarten
- Sortierverfahren, Effizienz von Algorithmen: neuer Rekord am KIT
- Wiederholung und Ergänzungen zu Klassen
- Verwendung von this
- Klassen- und Instanzkomponenten
- Lebenszyklus von Klassen und Instanzen
- Vorführung von Beispielen mit Dr. Java
- Variablenarten
- Lokale Variablen
- Formale Argumente
- Klassen- und Instanzvariablen
- Legale und illegale Namensgleichheit
- Initialisierung
- Folien Variablenarten
- Beispiel zum Vergleich von Klassen- und Instanzmethoden
- RatMul.java rationale Multiplikation
14. (Mi, 3.6.) Klassen, Vererbung
- Beispiele zu Klassen
- ToStringDemo.java zeigt die Verwendung der Methode toString()
- Karteikarten.java Erstellen und Ausgeben von Karteikarten
- KarteikartenKonstr.java ... mit einem Konstruktor wird das Erstellen einfacher
- KarteikartenK1.java ... alles in einer Klasse
- KarteikartenK1Meth.java ... mit einer Instanzmethode wird die Ausgabe einfacher
- KlasseOderInstanz.java demonstriert den Unterschied im Gebrauch von Klassen- und Instanzvariablen
- KlasseOderInstanzMethode.java demonstriert den Unterschied im Gebrauch von Klassen- und Instanzmethoden
- Wiederholung und Ergänzungen zu Vererbung
- Verwendung von super
- Polymorphie
- Klassen und final
- Zugriffsrechte und Vererbung
- Abstrakte Methoden und Klassen
- Schnittstellen
- Definition von Schnittstellen
- Imlementierung von Schnittstellen
- Beispiel: Funktionsauswertung
- Folien Schnittstellen
- Beispiel zur numerischen Integration
- Mathematische Grundlagen zur Trapezregel
- Funktion.java Interface zur Darstellung einer reellen Funktion
- Trapezregel.java Numerische Integration mittels Trapezregel
- Funktion1.java Berechnung von x*x
- Funktion2.java Aufruf der Standardfunktion sin
- FunktionN.java Berechnung von x hoch n
- TrapezregelBeispiel.java Hauptprogramm zum Einlesen der Parameter über die Programmparameter und zur Auswahl der Funktion
- Hinweise zu Aufgabenblatt 7
15. (Di, 9.6.) Vererbung und Polymorphie
- Wiederholung zu Vererbung
- Polymorphie
- Beispiele zu Vererbung und Polymorphie:
- Haustier.java Basisklasse mit Methode wert() und Sortiermethode
- Hund.java abgeleitete Klasse mit polymorphen und zusätzlichen Methoden
- Katze.java ... ebenso
- HaustierTest1.java Hauptprogramm hierzu (keine Vererbung)
- Rassekatze.java abgeleitete Klasse von Katze, polymorphe Methode wert() erlaubt Sortieren nach neuem Kriterium
- HaustierTest2.java Hauptprogramm hierzu (keine Vererbung)
- Polymorphie.java Demoprogramm zu Unterschieden zwischen polymorphen Instanzmethoden und nicht polymorphen Klassenmethoden
16. (Mi, 10.6.) Applets
- Applets
- Einführung
- Sicherheitsmaßnahmen
- Ereignisgesteuerte Programmierung
- Ereignisse
- Folien Applets
- Beispiele zu Applets und zugehörige html-Dateien (wenn Sie die html-Datei anklicken, wird das Applet ausgeführt; um die html-Datei abzuspeichern, müssen Sie sie i.a. mit der rechten Maustaste anklicken und die Option "Ziel speichern unter" wählen):
- Applet1.java / Applet1.html Demobeispiel
- Applet2.java / Applet2.html Effekte mit Zufallszahlen
- Applet3.java / Applet3.html Ändern der Schriftfarbe
- Applet4.java / Applet4.html Ändern des Zeichensatzes
- FormenDemo.java / FormenDemo.html Demoprogramm zum Zeichnen diverser Formen
- FarbPalette.java / FarbPalette.html Farbpalette mit 125 Farben ausgeben - mit Zeilenumbruch
- Hinweise zu Aufgabenblatt 8
17. (Di, 16.6.) Übungen zu Applets
- Beispiele zu Applets
- Lebenszyklus.java / Lebenszyklus.html Lebenszyklus eines Applets
- Lebenszyklus2.java / Lebenszyklus2.html Lebenszyklus eines Applets - mit Ausgabe auf Konsole
- Interaktion mit Webseite des Applets
- AppletParam.java / AppletParam.html Parameter an ein Applet übergeben
- AppletParam2.java / AppletParam2.html ... mit Umwandlung in einen Zahlenwert
- AppletSetColor.java / AppletSetColor.html Parameter an ein Applet übergeben mittels Form und JavaScript
- Besprechung zu Umfrage EvaSys
- Innere Klassen
- Elementklassen
- Lokale Klassen
- Anonyme Klassen
- Folien Innere Klassen
- Ereignisverarbeitung
- Komponenten
- Ereignisverarbeitung mit Listener
- Layout
- Folien Ereignisverwaltung
18. (Mi, 10.6.) Beispiele zu Applets mit Ereignisverwaltung
- Beispiele zu zeitlicher Steuerung einer Anwendung
- LangsamZaehlenSchlecht.java zeitlich gesteuerte Ausgabe mit Verzögerungsschleife - so nicht!
- LangsamZaehlenGut.java zeitlich gesteuerte Ausgabe mit Thread.sleep - bessere Variante
- Beispiele zu Komponenten
- FarbPaletteLabel.java / FarbPaletteLabel.html Farbpalette mit 125 Farben ausgeben - mit Labels
- FarbPaletteLabelG.java / FarbPaletteLabelG.html Farbpalette mit 125 Farben ausgeben - mit Labels und GridLayout
- FarbPaletteButton.java / FarbPaletteButton.html Farbpalette mit 125 Farben ausgeben - mit Buttons
- FarbPaletteButton2.java / FarbPaletteButton2.html Farbpalette mit 125 Farben ausgeben - mit beschrifteten Buttons
- FarbPaletteButtonG.java / FarbPaletteButtonG.html Farbpalette mit 125 Farben ausgeben - mit Buttons und GridLayout
- FarbPaletteButtonN.java / FarbPaletteButtonN.html Farbpalette mit 125 Farben ausgeben - mit Buttons und null-Layout
- Beispiele zu MouseListener und MouseMotionListener, ohne Komponenten
- MouseDemoF2.java / MouseDemoF2.html bei Mausklick Hintergrundfarbe wechseln mit Interface - ausführlichere Version
- MouseDemoF3.java / MouseDemoF3.html bei Mausklick Hintergrundfarbe wechseln mit Adapterklasse
- MouseDemoF4.java / MouseDemoF4.html bei Mausklick Hintergrundfarbe wechseln mit anonymer Klasse
- MouseDemoF5.java / MouseDemoF5.html bei Mausklick Koordinaten bestimmen und ausgeben
- MouseDemoF6.java / MouseDemoF6.html bei Drücken und Loslassen der Maustaste Koordinaten bestimmen und ausgeben
- MouseDemoF7.java / MouseDemoF7.html beim Verlassen und Wiederbetreten des Applets Koordinaten bestimmen und ausgeben
- MouseDemoF8.java / MouseDemoF8.html bei Mausbewegungen Koordinaten bestimmen und ausgeben
- Beispielserie MicroRechner, Komponenten ohne/mit Ereignisverarbeitung
- MicroEditor.java / MicroEditor.html ein Micro-Editor mit einem TextField
- MicroEditor2.java / MicroEditor2.html ein Micro-Editor mit einer TextArea
- MicroEditor3.java / MicroEditor3.html ein Micro-Editor mit einer TextArea und einem Label, in dem Zeichen und Zeilen gezählt werden
- MicroEditor4.java / MicroEditor4.html ein Micro-Editor mit einem Button zum Zählen der Zeichen und Wörter
- MicroEditor5.java / MicroEditor5.html ein Micro-Editor mit einem TextListener zum Zählen der Zeichen und Wörter
19. (Di, 23.6.) Übungen zu Applets
- Folien zu Applets und Ereignisverarbeitung
- Beispiele dazu
- Refresh.java / Refresh.html Bild flackert oder auch nicht - je nach dem welcher Programmteil auskommentiert ist
- Komponentenbsp.java / Komponentenbsp.html Komponenten zu Applet hinzufügen - aber ohne Funktion
- Koordinatensystem.java / Koordinatensystem.html Koordinatensystem verschieben, zeichnen, ...
- Framebsp.java Frame statt Applet, wird in Hauptprogramm main erzeugt
- Eventbsp.java / Eventbsp.html ähnlich wie Komponentenbsp, aber mit funktionierenden Komponenten dank entsprechender Listener
- Kurvendisk.java / Kurvendisk.html für ein wählbares Polynom 3. Grades Kurvendiskussion durchführen
- Beispiel-Programm zu Applets mit Komponenten
- Beispielserie Primzahlberechnung: Applets mit Komponenten, Ereignisverarbeitung, Vererbung, Effizienz von Algorithmen
- PrimApplet.java / PrimApplet.html auf Knopf-Druck die nächste Primzahl berechnen und in TextArea ausgeben
- PrimApplet2.java / PrimApplet2.html abgeleitete Klasse: zusätzlich jeweils 10 Primzahlen berechnen
- PrimApplet3.java / PrimApplet3.html abgeleitete Klasse: zusätzlich in TextField eingeben, wieviele Primzahlen beim nächsten Knopf-Druck berechnet werden - Effizienzproblem ab etwa 1000 neuen Primzahlen
- PrimAppletE.java / PrimAppletE.html auf Knopf-Druck die nächste Primzahl berechnen und in TextArea ausgeben, effizientere Variante mit StringBuffer
- PrimAppletE2.java / PrimAppletE2.html abgeleitete Klasse: zusätzlich jeweils 10 Primzahlen berechnen, effizientere Version: nur am Ende Ergebnis ausgeben
- PrimAppletE3.java / PrimAppletE3.html abgeleitete Klasse: zusätzlich in TextField eingeben, wieviele Primzahlen beim nächsten Knopf-Druck berechnet werden - funktioniert bis etwa 100000 neuen Primzahlen pro Schritt sehr effizient
- Beispiel-Programme zu Tastatur-Ereignissen:
- KeyColor.java / KeyColor.html Zeichen von der Tastatur einlesen und verarbeiten - mit Implementierung eines Listeners
- KeyColor2.java / KeyColor2.html ... zusätzlich das Zeichen ausgeben
- KeyDemoCodes.java / KeyDemoCodes.html Tastendrücke von der Tastatur einlesen und in TextArea ausgeben
20. (Mi 24.6.) Frames, Swing
- Beispiele zu Frames
- FrameDemo1a.java Demoprogramm das einen einfachen Frame erstellt
- FrameDemo2a.java Frame mit grafischer Ausgabe mittels paint
- FrameDemo3.java Aufteilung in zwei Klassen: Basisklasse fuer Grundstruktur des Frames, abgeleitete Klasse mit zusätzlichen Methoden
- FrameDemoMulti.java zwei Frames in einem Programm erstellen
- MenuDemo2.java Demoprogramm mit einer MenuBar
- Hinweise zum Aufgabenblatt 10
- Hinweise zur Klausur
- Swing
- Folien zu Swing
- Beispiele zu Swing
- SwingApplet.java / SwingApplet.html Swing-Applet mit einem Button und einem Label
- SwingDemo.java Swing-Demoprogramm mit Frame
21. (Di 30.6.) Übungen zu Swing
- Wiederholungen und Ergänzungen zu Swing
- Swing Tutorial der Johns Hopkins University
- Materialien bei coreservlets.com
- Folien zu Swing bei coreservlets.com
- Beispiele zu Swing
- SwingButtonImageIconApplet2.java / SwingButtonImageIconApplet2.html Button mit Bild
- SwingBorder2.java / SwingBorder2.html Swing-Applet, wechselt den Rand eines Labels, mit Bild
- SwingBST.java / SwingBST.html Swing-Applet: Buttons, Scrollbar und Textfeld beeinflussen sich gegenseitig
- SwingRadioButtonApplet.java / SwingRadioButtonApplet.html Swing-Applet mit 4 Radiobuttons, die sich zum Teil gegenseitig ausschließen
- SwingColorChooserApplet.java / SwingColorChooserApplet.html Swing-Applet mit ColorChoosern zur Auswahl der Hintergrund- und Vordergrundfarben
- SwingBoxen.java / SwingBoxen.html Swing-Applet, das verschiedene Meldungs- und Eingabeboxen anzeigt
- SwingMenu.java / SwingMenu.html Swing-Applet mit einem Menu
- SwingDemoOhneContentPane.java / SwingDemoOhneContentPane.html in der aktuellen Version von Swing kann meistens auf den Zugriff auf die ContentPane verzichtet werden
22. (Mi 1.7.) Ausnahmen, Threads
- Ausnahmen
- Folien zu Ausnahmen
- Threads
- Folien Threads
- Beispiel-Programme zu Threads
- PingPong.java, Uhrzeit.java Demo-Programme zu Threads
- Ueberweisungen.java Demoprogramm mit 3 Threads, demonstriert Probleme beim unkontrollierten Zugriff mehrerer Threads auf die gleichen Daten; 9 Überweisungen pro Thread pro Sekunde
- Ueberweisungen2.java ebenso, aber Überweisungen werden mit maximaler Geschwindigkeit ausgeführt
- Ueberweisungen6.java verbesserte Version, bei der die Überweisungen synchronisiert werden; dadurch treten keine Unstimmigkeiten mehr auf
- UhrzeitApplet.java / UhrzeitApplet.html Applet zur Ausgabe der aktuellen Zeit
- UhrzeitAppletDate.java / UhrzeitAppletDate.html Applet zur Ausgabe der aktuellen Zeit und des Datums mit Date und SimpleDateFormat
- Wecker.java Zwei schlafende Threads werden manchmal vorzeitig aufgeweckt
23. (Di 7.7.) Threads und Streams
- Beispiel-Programme zu Threads
- BlinkThreads.java / BlinkThreads.html Applet mit 100 farbigen Feldern, die mittels Threads unabhängig voneinander blinken können - obwohl das Bild nur einmal pro Sekunde aktualisiert wird, flackert es
- BlinkThreads2.java / BlinkThreads2.html Applet mit 100 farbigen Feldern, die mittels Threads unabhängig voneinander blinken können - durch die Verwendung von 100 Canvas Objekten flackert es nicht mehr, selbst bei schneller Aktualisierung des Bildes
- BlinkButtons.java / BlinkButtons.html Applet mit 4 Buttons, die mittels 4 Threads unabhängig voneinander blinken können
- MeinThread.java Klasse zu Threads, besitzt leere Methode aktion()
- MeinThreadTest.java erzeugt 2 Threads aus MeinThread, ersetzt die Methode aktion()
- MeinThreadTest2.java erzeugt 2 Threads aus MeinThread, ersetzt die Methode aktion() mit ganz verschiedenen Aktionen
- MeinThreadTestDMT.java visualisiert den zeitlichen Ablauf eines Diffusionsprozesses, verwendet zur grafischen Darstellung einer Matrix die Klasse DrawMatrix.java
- Files, Ein-Ausgabe mit Streams
- Einführung
- Klassenhierarchie byteorientierte Ein-/Ausgabe
- Klassenhierarchie textorientierte Ein-/Ausgabe
- Auftretende Probleme
- Folien zu Streams
- Beispiele zu Streams
- BinFileWrite.java schreibt Daten in interner Darstellung auf ein File
- BinFileRead.java liest Daten in interner Darstellung von einem File
- TextFileWrite.java schreibt Daten in Text-Darstellung auf ein File
- TextFileRead.java liest Daten in Text-Darstellung von einem File
24. (Mi 8.7.) Übungen zu Streams, Zugriff auf Daten im Web
- Bemerkungen zu Swing und Threads
- Folien zu Swing
- Beispiele zu Files
- BufferedRWTokenizer.java liest und schreibt Daten gepuffert und mit Tokenizer, es dürfen mehrere Zahlen in einer Zeile stehen
- FileDir.java listet alle Dateien und Verzeichnisse auf
- RandomFileWrite5.java schreibt Daten an beliebiger Stelle auf ein File und zeigt Ergebnis an
- RandomFileRead5.java liest Daten von beliebiger Stelle eines Files und zeigt Ergebnis an
- Kommunikation via Internet, Beispiele
- TheTimeMain.java liest die Zeit von einem Server in USA
- ChatServer.java, ChatClient.java realisieren ein Chat-Protokoll zwischen zwei entfernten Rechnern (Achtung: der verwendete Port muss ggf. in der Firewall des Betriebssystems freigegeben werden)
- MiniBrowser.java zeigt den Text einer Webseite an, die Adresse wird in der Kommandozeile angegeben
- MiniBrowser2.java zeigt den Text der eingegebenen Webseite an sowie die darin enthaltenen Links, die Links können über ihren Index angesprungen werden
- MiniBrowser3.java zeigt eine Webseite in einer JEditorPane an, die Adresse wird in der Kommandozeile angegeben; ohne Angabe wird die Seite MiniBrowser3.html angezeigt
- MiniBrowser4.java wie MiniBrowser3, aber die enthaltenen Links können über einen HyperlinkListener angeklickt werden; ohne Angabe wird die Seite MiniBrowser4.html angezeigt
25. (Di 14.7.) Rekursion, Backtracking
- Kommunikation via Internet, Beispiele
- MiniBrowser5.java wie MiniBrowser4, aber mit Eingabefeld für die Webadresse und Button "Zurück"; als Startseite wird die Seite MiniBrowser5.html angezeigt
- Wiederholung zu Rekursion
- Beispiel Baum des Pythagoras
- Pythagorasbaum auf Wikipedia
- Pythagorasappl.java / Pythagorasappl.html Konstruktion des Pythagorasbaums mit rekursiver Methode
- Methode der Rückverfolgung / Backtracking
- Backtracking auf Wikipedia
- Beispiel Lösen des Achtdamenproblems per Backtracking
- Achtdamenproblem auf Wikipedia
- Achtdamen5.java Lösung des Achtdamenproblems mit rekursiver Methode; benötigt für die Eingabe Prog1Tools.zip
- AchtdamenApp5.java stellt die Lösungen des vorigen Programms grafisch dar (KEIN Applet, sondern Frame)
- Beispiel Lösen eines Sudokus per Backtracking
- Sudoku auf Wikipedia
- Sudoku.java Lösung eines Sudokus mit rekursiver Methode; benötigt für die Eingabe Prog1Tools.zip
- Sudoku.demo2, Sudoku.dat4 zwei Beispielprobleme, die vom Sudoku-Programm gelöst werden können
26. (Mi 15.7.) Klausurvorbereitung
- Rückblick auf den Stoff des Semesters
- Grundelemente der Sprache
- Objektorientierte Programmierung mit Klassen
- Applets und Frames in awt und Swing
- Komponenten: Label, Button, TextField, ..., bzw. JLabel, JButton, ...
- Ereignisverarbeitung: ActionListener, WindowListener, ...
- Beispiele: Matrixaddition, -multiplikation, Fibonaccizahlen
27. (Di 21.7.) Klausurbesprechung, Beispiel Sudoku
- Klausurbesprechung
- Hinweise zu Zertifikaten von Sun
- www.suntrainingcatalogue.com Angebot von Kursen und Zertifizierungsprüfungen bei Sun
- Sun Java: Learning Paths
- Sudoku erstellen
- Sudoku auf Wikipedia
- SudokuErzeugen.java Sudoku erzeugen (zu Algorithmen siehe Wikipedia), Achtung: verwendet Prog1Tools, s.o.
- SudokuApplet.java grafische Oberfläche für Sudoku-Spiel, Achtung: ggf. in Zeile 156 andere Icons wählen
- icon-a0-9.zip Icons für Fahnen 0-9
- SudokuAppletJarA.html Webseite zum Ausführen des in ein Jar-Archiv verpackten Applets
28. (Mi 22.7.) Java5, Collections (ausgefallen, statt dessen Scheinausgabe)
- Programbeispiele zu den Neuerungen von Java 5 - jeweils zum Vergleich in Java 1.4 und Java 5:
- Eingabe mit Scanner
- Ausgabe mit printf
- Formeln mit static-import
- for-Schleifen
- Variable Argumentlisten
- Hüllklassen: automatische Konversion
- Generische Programmierung
- siehe Ordner java5
- Collections
- Scheinausgabe und Klausureinsicht ab 14:00 Uhr im Rechenzentrum vor dem Praktikumsraum