Webrelaunch 2020

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

2. (Mittwoch, 22.4.) Grundlagen

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

5. (Di, 5.5.) Wiederholung und Ergänzungen zu Anweisungen

  • Wiederholung zu Anweisungen
  • Weitere Anweisungen
  • 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

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

9. (Di, 19.5.) Felder und Methoden

  • Wiederholung zu Feldern
  • Felder als Referenzdatentypen
  • Wiederholung zu Methoden
  • Ergänzungen zu Methoden
    • Überladen
    • Programmparameter
  • Beispiele

10. (Mi, 20.5.) Übungen

11. (Di, 26.5.) Sortieralgorithmen und Klassen als Datenstrukturen

  • Sortierverfahren, Effizienz von Algorithmen
  • Beispiele zum Sortieren
  • 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
  • Variablenarten
    • Lokale Variablen
    • Formale Argumente
    • Klassen- und Instanzvariablen
    • Legale und illegale Namensgleichheit
    • Initialisierung
  • Folien Variablenarten
  • Beispiel zum Vergleich von Klassen- und Instanzmethoden

14. (Mi, 3.6.) Klassen, Vererbung

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

17. (Di, 16.6.) Übungen zu Applets

18. (Mi, 10.6.) Beispiele zu Applets mit Ereignisverwaltung

19. (Di, 23.6.) Übungen zu Applets

20. (Mi 24.6.) Frames, Swing

21. (Di 30.6.) Übungen zu Swing

22. (Mi 1.7.) Ausnahmen, Threads

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

24. (Mi 8.7.) Übungen zu Streams, Zugriff auf Daten im Web

  • Bemerkungen zu Swing und Threads
  • Folien zu Swing
  • Beispiele zu Files
  • 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

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

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