Copyright © 1997, 1998 by Axel T. Schreiner. All Rights Reserved.

Programmieren mit Java

Axel-Tobias Schreiner, Fachbereich Mathematik-Informatik, Universität Osnabrück.

Eine Einführung in die Programmierung mit Java.

Vorlesung im Wintersemester 1997/1998; in Entwicklung.

Von hier aus sind Kopien der OH-Folien des Skripts, der Java-Dokumentation von Sun sowie die Programmbeispiele erreichbar, die in der Vorlesung verwendet werden. Die Texte sind kein komplettes Manuskript der Vorlesung. Zum Selbststudium müßten zusätzlich Bücher über Java, objekt-orientierte Programmierung, Netzprogrammierung und auch über das World-Wide Web konsultiert werden.

aufgaben

Jede Woche gibt es ein Aufgabenblatt. Sollte es nicht selbständig gelöst werden, könnte eine Klausur folgen...

code

Die Programmbeispiele sind parallel zu den Kapiteln der Vorlesung in Katalogen zusammengefaßt.

ftp

Archivierte Kopien der Programmbeispiele, Dokumentation und OH-Folien sowie Entwicklungssysteme, verschiedene Betrachter und ähnliche Werkzeuge können nur im Netz der Universität Osnabrück per File-Transfer-Protokoll abgeholt werden.

Gute Anfangspunkte, um Java-Werkzeuge im Web zu finden, sind die Java Resource List und die Products & APIs bei Sun sowie Jeff Poskanzers Home-Page.

html

In diesem Bereich sind die OH-Folien des Skripts und die Dokumentation sowie die Beispiele des JDK (1.1.5) zu finden.

pdf

Das Material aus dem html-Bereich wurde mit Adobe Acrobat in das Portable Document Format gewandelt und mit einem Index versehen. Das Format eignet sich primär zum Drucken und unter Windows auch zur lokalen Volltextsuche.

Je nach Plattform sind dafür spezielle Betrachter erforderlich, die zuvor installiert werden müssen. Betrachter für Windows und Linux befinden sich auch im ftp-Bereich.

Eine Reihe der Dokumente sind nur schwarz-weiß, da der Acrobat Distiller 3.01 beim Übersetzen der farbigen Bilder auch dann abstürzt, wenn sie mit Adobe PhotoShop 3.0 bearbeitet werden.

Java im Lehre-Netz der Osnabrücker Informatik

Frank Lohmeyer gab folgende Informationen zum Stand der Java-Installationen im Lehre-Netz der Informatik:
Rechner Betriebssystem Java-Version
yama HP-UX-10.20 1.1.3 für Vorlesung java
kali HP-UX-10.20 1.1.3 für Vorlesung java
rudra HP-UX-10.01 1.02 für Vorlesung ainf
indra HP-UX-10.01 1.02 für Vorlesung ainf
zeus Solaris-2.5 1.1.4 Reserve für java
ramses Solaris-2.5 1.1.4 Reserve für java
Raum 502 SunOS-4.1.3 1.1.? nicht Remote nutzen
Raum 145 Openstep-4.1 1.1.? kein awt ausführbar
Auf allen Rechnern wird /usr/local/java/bin in den Pfad aufgenommen, wenn in ~/.profile ein Eintrag Java existiert. Die Kommandos heißen auf allen Rechnern java und javac.

Termine 1997/1998

Vorlesung Dienstag, 10:15 31/449a Schreiner
Donnerstag, 10:15
Übungen Montag, 10:15 31/449a Kühl
Montag, 12:15
Sprechstunde Donnerstag ab 15:00 n.V. 31/321 Schreiner
Dienstag 14-16 oder n.V. 31/318a Kühl

Kalender 1997/1998

Oktober14 Einführung, Online-Daten, Was ist Java, ein erstes Programm, Java: Klasse, Klassenmethode, Methode, System, println, programs/hello
16 Eine erste Applikation, Java: AWT, neue Klasse, anonyme Klasse, Konstruktor, Layout, Event, apps/hello
21 Ein erstes Applet, Java: Applet und Meilensteine, applets/hello, javadoc, jdb, Integer-Daten
23 Integer-Daten, Ranges: Wertebereiche, Bit-Operationen, Try: Division durch Null, ArithmeticException, Cvt: Umwandlungen, Exception verursachen
28 Gleitkomma-Daten, Ranges: Wertebereiche, Darstellung, spezielle Werte, Qgl: Umwandlungen, Arithmetik, Bedingungen, Cvt: Umwandlungen, Objekt-Identität und -Gleichheit, Zeichen und Zeichenketten
30 Zeichen und Zeichenketten, Klassen für Eingabe und Ausgabe, wc: Zeichen zählen, Pakete, Design eigener Klassen
November4 Polymorphismus, Overloading, Vererbung, dynamische Bindung, Overriding, Wc0: Dateien auf der Kommandozeile, Wc1: Vektoren, Dateizugriff, Bc: Bytes zählen
6 Vektoren als Objekte, Unicode, Unicode-Transfer-Format, Uc: Zeichen zählen, Streams als Zähler, Kooperation mit Wc1
11 Klassenhierarchie von wc, wc: Innere Klassen, Optionen auf der Kommandozeile, Wc: Kommandozeile
17 wc: Innere Klassen, Zählen mit InputStream und Reader, Wc: Zählen, interface, Prop: System-Properties
18 System-Properties, Expression: Verschachtelte und anonyme Klassen, Parsieren mit rekursivem Abstieg
20 Grammatik und Parser, Expr: Kommandozeile als Stream, Vererbung von Klassenmethoden, Framework für Kommandozeile: Design
25 Innere Klassen: mögliche Zugriffe, Framework für Kommandozeile: Implementierung, cat, wc im Framework
27 File: Umgang mit Dateien, ls, naives Sortierprogramm, Vektor und Vector
Dezember2 [Streik] JavaCC Compiler-Compiler: Struktur, Erkennung, Fehlerbehandlung, Bewertung
4 [Streik] JavaCC Compiler-Compiler: Syntaxbaum, Interpreter
9 [Streik] Verteilte Objekte: Remote Method Invocation
11 [Streik] Datenbankzugriff: JDBC
16 Sortieren: Algorithmus verpacken
18 Threads
Januar6 Threads: Konzepte und typische Synchronisation; Semaphore
8 Threads: Pipelines. Abstract Window Toolkit: Zielsetzung, Aufgaben, Architektur der Beispiele, Ablauf, Arten von Events
13 Button, Instrumentierung, Listener
15 Canvas, Checkbox, Choice, Dialog, Modal-Schleife
20 FileDialog, Image und ImageView, asynchrones Laden, Netzadressen
22 Label und Color, List, nicht-portabler Status, Menu und andere Menüklassen
27 Korrekturen: show(), validate(). PopupMenu, Scrollbar, Fokus, ScrollPane, TextArea
29 Beispiele als Applets, LoaderApplet, PrintArea, Umgang mit Events, Taschenrechner als endlicher Automat
Februar3 Keyboard, Taschenrechner-Applikation, Cpu mit javacc
5 Cpu mit javacc, ActionEvent als InputStream, Taschenrechner mit Threads, Observable, Taschenrechner mit Protokoll. Layouts, GridBagLayout, CardLayout
9 GridBagLayout, GridBagConstraints. Internet-Adressen, TCP, UDP, TCP-Sockets, Talk, Echod
12