Weshalb Java? Die klassische Sprache der Programmierausbildung ist Pascal. Pascal war zwar ursprünglich keine objektorientierte Sprache, ist aber vor einigen Jahren um Möglichkeiten zur OOP erweitert worden. Heute kann man mit Pascal auf ganz unterschiedliche Weisen program mieren. Pascal-Programme, die von einem sachverständigen Entwickler geschrieben wur den, sind gewöhnlich leicht verständlich und übersichtlich. Leider hat Pascal in der Praxis nie so große Verbreitung gefunden wie in der Ausbildung. Java ist im Gegensatz zu Pascal rein objektorientiert und legt den Programmierer kon sequent auf die OOP fest. Für die Ausbildung ist dies eher günstig, weil einige Irrwege von vornherein ausgeschlossen werden. Hinsichtlich der Einfachheit und Übersichtlichkeit kann Java mit Pascal wohl nicht ganz mithalten, jedoch ist mit Java erheblich einfacher zu pro grammieren als mit einigen anderen objektorientierten Sprachen, wie z.B. C++. Ein ent scheidendes Argument zugunsten von Java und gegen Pascal ist die Relevanz ftir die Praxis. Wer heute Java lernt, hat gute Chancen, auch später im Beruf damit,zu arbeiten oder sich sogar als Student mit dem Schreiben von Programmen ein kleines Zubrot verdienen zu können. Wie lernt man Programmieren? Wenn Sie diesen Kurs sorgfältig durcharbeiten und vielleicht zusätzlich noch eine Vorle sung besuchen, haben Sie schon viel gewonnen. Sie werden auf das Wichtige hingewiesen, folgen einem roten Faden und können Baustein ftir Baustein aufeinander legen.
Inhaltsverzeichnis
1 Programmieren heißt, Algorithmen zu entwerfen.- Algorithmen Typische Eigenschaften von Algorithmen Was nützt ein Algorithmus? Vom Algorithmus zum Programm Virtuelle Maschinen oder: Wie spreche ich mit meinem Computer? Aufgaben.- 2 Programmieren heißt, Systeme zu bauen.- Weshalb Programmieren mehr ist, als Algorithmen zu schreiben Was ist ein System? Systemverhalten Systemzustände Die Teile eines Systems Prinzipien zur Gestaltung von Systemen Modelle und Modellierung Prinzipien der Objektorientierten Programmierung (OOP) Methoden Aufgaben.- 3 Die ersten Programme.- des ersten Programms Klassen: Baupläne für Objekte Vorhandene Klassen benutzen Die Klasse IntIO Objekte erzeugen Der Programmtext Kommentare Groß- und Kleinschreibung Die Ausgabe sichtbar machen Aufgaben Rückschau Das zweite Programm Ein verfeinertes Kollaborationsdiagramm Die Klasse Waehrungsrechner Konstruktor Eine Instanzenvariable Methoden die ausführbare Klasse Umrechnung Aufgaben.- 4 Klassen schreiben.- Die Klasse Mitarbeiter Vorbetrachtung Die Beispielanwendung: Gehaltsliste Die Deklaration der Klasse Mitarbeiter, erste Fassung Datentypen: Klassen und andere Ein Konstruktor Methoden mit get und set Selbstaufrufe mit thi s Die ausführbare Klasse Gehaltsl i ste Aufgaben Verhalten, Zustand, Schnittstelle Die zweite Fassung der Klasse Mitarbeiter Klassenvariablen Klassenmethoden Konstruktoren Methoden mit Objektparametern Weshalb kein direkter Zugriff auf Instanzenvariablen? Ein Programm zur Mitarbeitererfassung Aufgaben.- 5 Variablen und Objekte.- Variablen sind Griffe Arten von Variablen Variablen mit einfachem Datentyp Variablen, die auf Objekte verweisen Initialisierung von Variablen Variablen und Parameterübergabe Namenräume Aufgaben Wenn Variablen sich verbergen.- 6 Steueranweisungen 1: Verzweigungen.- Die unvollständige Verzweigung (einfache if-Anweisung) Zusammengesetzte Bedingungen Verbundanweisungen (Blöcke) Die vollständige Verzweigung Geschachtelte Verzweigungen Die Paarung Verzweigungen mit Entscheidungsbäumen entwerfen Geschachtelte Verzweigungen durch einfache Verzweigungen ersetzen Eine größere Anwendung Aufgaben Zusammenfassung von Erhebung und Auswertung Mehrfachauswahl Aufgaben.- 7 Steueranweisungen 2: Schleifen.- Die Bedingungsschleife mit while (while-Schleife) Die Zählschleife (for-Schleife) Der Namensraum einer Schleifenvariablen Geschachtelte Schleifen Tabellarische Darstellung der Schleifendurchläufe (Trace) Aufgaben.- 8 Rekursion.- Rekursive Definitionen Eine rekursive Methode zur Fakultätsberechnung Wie läuft eine rekursive Methode ab? Die Bewegung zum Basisfall Der Algorithmus des Euklid rekursiv formuliert Missbrauch der Rekursion: die Methode fibonacci () Rekursion versus Iteration Aufgaben.- 9 Arbeiten mit vielen Daten.- Arrays Arrays mit primitiven Daten Sofortige Zuweisung der Array-Daten Arrays mit Objekten Aufgaben Sortieren eine häufig gestellte Aufgabe Sortieren durch Auswahl (selection sort) Aufgaben Mehrdimensionale Arrays Aufgaben.- 10 Fallstudie: Robotersimulation.- Beschreibung der Anwendung Die Architektur einer Anwendung Die Architektur der Robotersimulation Die Klasse Roboter Die Klasse Robotsteuerung Die KlasseArbeitsumgebung Programmieren der Steuerung Aufgaben Noch einmal: Architektur.- 11 Datenbehälter.- Behälter und Verarbeitung Schlangen, Stapel und Listen Die Anwendung: Das Partnervermittlungssystem PVS Die Architektur der Anwendung Die Klasse Kunde Der Aufbau einer verketteten Liste Die Klasse Element Die Klasse Kundenliste Die Klasse PVS Aufgaben Bemerkungen zur Architektur Aufgabe Verkettung eine vielfach anwendbare Technik.- 12 Vererbung.- Praxisbeispiel Spezialisierung als Grundlage der Vererbung Ein einfaches Beispiel Unterklassen Überschreiben von Methoden Ein erweitertes Klassendiagramm Benutzung der Klassen: das Programm Auswahl der auszuführenden Methode Polymorphie Polymorphie mit Datenbehältern Eine abstrakte Klasse Die ausführbare Klasse GrussAusgabe2 Typumwandlungen Aufgaben Die Klasse Object: Wurzel der Java-Klassenhierarchie.- 13 Graphische Benutzeroberflächen.- Die Klassenbibliotheken AWT und Swing Ein leeres Anwendungsfenster Eine Anwendung, die zeichnet Layoutgestaltung: Layout-Manager Layoutgestaltung: Darstellungsflächen ineinander schachteln Vorteile der Java-Layouttechnik Aufgaben.- 14 Ereignisverarbeitung.- Ereignisse Prinzip der Ereignisverarbeitung Hörerklassen und Hörerschnittstellen Hörerklassen als innere Klassen schreiben Eine Hörerklasse für alle Schaltflächen? Verwendung einer Auswahlliste Die Elemente neu ordnen Aufgaben.- 15 Fallstudie: Verschiebespiel.- Die graphische Benutzeroberfläche Die Architektur: Trennung von Programmlogik und GUI Die Klasse Verschiebespiel Die Klasse VSAWTUI Umstellung auf eine Swing-Benutzeroberfläche Aufgaben.- 16 Objekte dauerhaft speichern.- Persistenz Persistenz in Java Die Schnittstelle Serializable Speichern Daten einlesen Aufgaben.- Lösungen 195 Programmtexte.- Lexikon der Fachbegriffe.- Java-Referenz.- Lesetipps 247 JDK.