Skip to main content
main-content

Über dieses Buch

Mit Java hat sich in der Industrie eine Programmiersprache durchgesetzt, die weit über die Konzepte traditioneller Programmiersprachen hinausgeht. Dieses Buch setzt keine Kenntnisse in anderen Programmiersprachen voraus, sondern richtet sich an diejenigen Schüler, Studenten und Praktiker, die nicht nur kurz in Java hineinschnuppern wollen, sondern das Ziel haben, die Grundlagen der Sprache Java in systematischer Weise zu erlernen.

Auf springer.com finden Sie vertiefende Kapitel, alle Programmbeispiele und alle Bilder des Buchs, sowie die Lösungen zu den im Buch enthaltenen Aufgaben und zu einem Projektbeispiel, in dem ein Flughafen-Informationssystem simuliert wird.

Inhaltsverzeichnis

Frontmatter

Objektorientierung und Grundkurs Java

Frontmatter

1. Grundlagen der Programmierung

Bevor man mit einer Programmiersprache umzugehen lernt, muss man wissen, was ein Programm prinzipiell ist und wie man Programme konstruiert. Damit wird sich das erste Kapitel befassen. Leser, die bereits eine höhere Programmiersprache erlernt haben, können prüfen, ob sie die hier präsentierten Grundlagen (noch) beherrschen, und können ggf. dieses Kapitel "überfliegen".
Joachim Goll, Cornelia Heinisch

2. Objektorientierte Konzepte

Menschen denken objektorientiert. Sie denken in Gegenständen wie Tisch, Stuhl, Person und so weiter. Objektorientierte Programmiersprachen bilden das menschliche Denken nach und enthalten Abstraktionen von Gegenständen.
Joachim Goll, Cornelia Heinisch

3. Einführung in die Programmiersprache Java

Im Jahre 1991 befasste sich ein Mitarbeiterteam von Sun Microsystems (inzwischen Oracle) mit der Entwicklung von Set-Top-Boxen f?ür Fernsehgeräte mit dem Ziel des interaktiven Fernsehens. Für die Software dieser Boxen wurde zunächst C++ verwendet – die damals gängige Sprache für objektorientierte technische Anwendungen. Die Unzufriedenheit über die Komplexität von C++ und die daraus resultierende mangelnde Sicherheit veranlasste das Team, ausgehend von C und C++ eine neue Sprache – die Sprache Java – zu entwickeln.
Joachim Goll, Cornelia Heinisch

4. Einfache Beispielprogramme

Mit dem Programm "Hello, world" in Kapitel 1.1 und dem Programm "Punkt" in Kapitel 2.1 haben Sie bereits erste Erfahrungen im Programmieren erworben. Programmieren kann viel Spaß bereiten. Im Folgenden sollen deshalb weitere kurze, aussagekräftige Programme vorgestellt werden, damit Sie sich zunächst spielerisch voran arbeiten, um dann auch Augen und Ohren für die erforderliche Theorie zu haben. Alle Programme des Buches befinden sich auch auf der Internetseite des Verlags unter www.springer-vieweg.de. Sie brauchen also die Programme nicht abzutippen.
Joachim Goll, Cornelia Heinisch

5. Lexikalische Konventionen

"Lexikalisch" bedeutet "ein Wort (eine Zeichengruppe) betreffend", ohne den Textzusammenhang (Kontext), in dem dieses Wort steht, zu berücksichtigen. Im Folgenden werden also die "Rechtschreibregeln", um Wörter in der Programmiersprache Java zu bilden, besprochen.
Joachim Goll, Cornelia Heinisch

6. Datentypen und Variablen

Datentypen stellen den Bauplan für Variablen dar. Alle Variablen eines Datentyps haben dieselbe Darstellung im Arbeitsspeicher, d. h. dieselbe Anzahl von Speicherzellen und dieselbe Interpretation der einzelnen Bits. Verschiedene Variablen können dabei individuelle Werte tragen.
Joachim Goll, Cornelia Heinisch

7. Ausdrücke und Operatoren

Ein Ausdruck ist in Java im einfachsten Falle der Bezeichner (Name) einer Variablen oder einer Konstanten. Meist interessiert der Wert eines Ausdrucks. So hat eine Konstante einen Wert, eine Variable kann einen Wert liefern, aber auch der Aufruf einer Instanz- oder Klassenmethode kann einen Wert liefern. Der Wert eines Ausdrucks wird oft auch als Rückgabewert des Ausdrucks bezeichnet.
Joachim Goll, Cornelia Heinisch

8. Kontrollstrukturen

Kontrollstrukturen steuern den Kontrollfluss eines sequenziellen Programms. Dabei können beispielsweise in Abhängigkeit von der Bewertung von Ausdrücken gewisse Anweisungen übergangen oder ausgeführt werden. Da Kontrollstrukturen in Java einen einzigen Eingang und einen einzigen Ausgang haben, bleibt der Kontrollfluss einer Methode dennoch sequenziell.
Joachim Goll, Cornelia Heinisch

9. Blöcke und Methoden

Diese beiden Sätze enthalten bereits die Definition von Block und Methode. Blöcke und Methoden werden in diesem Kapitel detailliert behandelt.
Joachim Goll, Cornelia Heinisch

10. Klassen und Objekte

In Java kann man nur objektorientiert programmieren. Die Klassen und ihre statischen Beziehungen stellen das Skelett eines Programms dar. Die Muskeln, die das Skelett zum Leben und in Bewegung bringen, sind die Methoden, welche die Dynamik, d. h. die Verarbeitung von Daten, beschreiben.
Joachim Goll, Cornelia Heinisch

11. Vererbung und Polymorphie

Neben der Aggregation stellt die Vererbung ein wesentliches Sprachmittel der objektorientierten Programmiersprachen dar, um Programmcode wiederverwenden zu können. Bei der Vererbung wird in Java der Quellcode einer einzigen Superklasse in einer abgeleiteten Klasse wiederverwendet. Bekanntermaßen unterstützt Java nicht das Konzept der Mehrfachvererbung wie beispielsweise C++ sondern das Konzept der Einfachvererbung. Bei der Aggregation werden vorhandene einzelne Klassen von den aggregierenden Klassen benutzt und damit wiederverwendet. Beim Vorliegen von Polymorphie von Objekten hingegen können komplette Programme wiederverwendet werden, wenn die Klassen dieser Programme als Basisklassen genommen werden und die Gültigkeit des liskovschen Substitutionsprinzips bei der Vererbung garantiert ist. Das liskovsche Substitutionsprinzip wird in Kapitel 11.4 erläutert.
Joachim Goll, Cornelia Heinisch

12. Pakete

Ehe auf die Gruppierung von Quellcode in Kapitel 12.2 eingegangen wird, stellt Kapitel 12.1 das Konzept der "Programmierung im Großen" vor. Kapitel 12.3 befasst sich mit der Erstellung von Paketen und Kapitel 12.4 mit der Benutzung von Paketen. Kapitel 12.5 erörtert Paketnamen und Kapitel 12.6 den Gültigkeitsbereich von Klassennamen. Kapitel 12.7 diskutiert die Bedeutung von Zugriffsmodifikatoren für Klassen bzw. Schnittstellen in Paketen sowie von Elementen in Klassen, d. h. von Methoden und Datenfeldern, für den Zugriff aus anderen Paketen.
Joachim Goll, Cornelia Heinisch

13. Ausnahmebehandlung

Das Konzept des Exception Handling, das normalen Code von fehlerbehandelndem Code trennt, wird programmiersprachenunabhängig in Kapitel 13.1 vorgestellt. Kapitel 13.2 erläutert, wie das Konzept des Exception Handling in Java umgesetzt wird. Die gemeinsame Basisklasse aller Exceptions, die Klasse Throwable, wird in Kapitel 13.3 vorgestellt. Kapitel 13.4 zeigt den Klassenbaum der Exception-Klassen mit der Klasse Throwable als Wurzelklasse. Die wichtigsten Klassen dieses Klassenbaums werden vorgestellt.
Joachim Goll, Cornelia Heinisch

14. Schnittstellen

Eine Klasse enthält Methoden und Datenfelder. Methoden bestehen aus Methodenköpfen und Methodenrümpfen. Methodenköpfe stellen die Schnittstellen eines Objektes zu seiner Außenwelt dar.
Joachim Goll, Cornelia Heinisch

15. Threads

Bei vielen Anwendungen ist es wünschenswert, dass ein Benutzer an seinem Computer parallel verschiedene Aufgaben durchführen kann. So möchte z. B. ein Nutzer eine Datei aus dem Internet laden, während er zugleich einen Text in einem Fenster des Bildschirms schreibt. Er wäre – wenn er nur einen einzigen Prozessor hat – überhaupt nicht zufrieden, wenn er während des Ladevorgangs seine sonstigen Aktivitäten am Rechner einstellen und untätig auf den Abschluss des Ladens warten müsste.
Joachim Goll, Cornelia Heinisch

16. Generizität

Seit Java 5 unterstützt Java die Definition
  • generischer Klassen,
  • generischer Schnittstellen und
  • generischer Methoden.
Diese werden als Java Generics bezeichnet.
Joachim Goll, Cornelia Heinisch

17. Geschachtelte Klassen

Geschachtelte Klassen werden in Java meist dazu eingesetzt, um Klassen oder Schnittstellen in einer sie umfassenden Klasse zu verbergen und sie anderen Klassen außerhalb der umfassenden Klasse nicht zugänglich zu machen.
Joachim Goll, Cornelia Heinisch

Grundlegende Java-Bibliotheken

Frontmatter

18. Collections

Collections sind – wie der Name schon andeutet – Zusammenstellungen von Daten, genauer gesagt von Objekten. Zur Verwaltung dieser Objekte im Arbeitsspeicher werden bei der Programmierung Datenstrukturen (Strukturen von Objekten) eingesetzt. Die einfachste dieser Datenstrukturen ist das bekannte Array. Darüber hinaus kennt man in der Informatik jedoch noch eine ganze Reihe weiterer Datenstrukturen mit unterschiedlichen Eigenschaften.
Joachim Goll, Cornelia Heinisch

19. Ein-/Ausgabe und Streams

Programme laufen fast immer nach dem Schema "Eingabe/Verarbeitung/Ausgabe" ab. Schon daran ist die Wichtigkeit der Ein- und Ausgabe in Programmen zu erkennen. Ein gutes Ein- und Ausgabe-System ist für die Akzeptanz einer Programmiersprache von großer Bedeutung. Gute Ein- und Ausgabe-Systeme sind jedoch nicht einfach zu entwerfen, denn es gibt nicht nur sehr viele Datenquellen (Tastatur, Dateien, Netzverbindungen), von denen Eingaben gelesen werden, und Datensenken (Bildschirme, Dateien, Netzverbindungen), in welche die Ausgaben geschrieben werden, sondern mit diesen Datenquellen und Datensenken sollen Informationen auch in verschiedenen Einheiten wie z. B. Bytes, Zeichen oder Zeilen ausgetauscht werden.
Joachim Goll, Cornelia Heinisch

20. Applets

Wie schon der Name "Applets" vermuten lässt, handelt es sich bei Applets um kleine Applikationen – die Nachsilbe "let" stellt im Englischen die Verkleinerungsform entsprechend dem deutschen "chen" dar. Im Unterschied zu normalen Java-Applikationen sind Applets in eine HTML-Seite eingebettet. Anstatt von eingebettet spricht man auch oft von eingebunden. Für das Verständnis ist es jedoch einfacher, sich vorzustellen, dass innerhalb der HTML-Seite auf ein Applet verwiesen wird, das sich auf einem HTTP-Server befindet.
Joachim Goll, Cornelia Heinisch

21. Sicherheit in Java

Eine herausragende Fähigkeit des Internets ist, dass Informationen in Form von Daten und Programmen mühelos von einem Punkt der Erde zu einem anderen übertragen werden können. Damit können diese Informationen natürlich weltweit das Ziel von Angriffen sein. Außerdem werden beim Aufruf einer Webseite durch einen Benutzer automatisch die class-Dateien eines eventuell auf der Webseite vorhandenen Applets auf den eigenen Rechner geladen und vom Browser gestartet, wobei der Nutzer der Ausführung zustimmen muss.
Joachim Goll, Cornelia Heinisch

22. Oberflächenprogrammierung mit Swing

Die in diesem Buch bisher vorgestellten Programme wurden über die Kommandozeile bedient. Während das bei kleineren Programmen noch problemlos möglich ist, wird die Bedienung über die Kommandozeile mit steigender Funktionsvielfalt eines Programmes immer komplexer. Um die Bedienung zu erleichtern, werden sogenannte grafische Bedienoberflächen eingesetzt.
Joachim Goll, Cornelia Heinisch

Backmatter

Weitere Informationen

Premium Partner

BranchenIndex Online

Die B2B-Firmensuche für Industrie und Wirtschaft: Kostenfrei in Firmenprofilen nach Lieferanten, Herstellern, Dienstleistern und Händlern recherchieren.

Whitepaper

- ANZEIGE -

Best Practices für die Mitarbeiter-Partizipation in der Produktentwicklung

Unternehmen haben das Innovationspotenzial der eigenen Mitarbeiter auch außerhalb der F&E-Abteilung erkannt. Viele Initiativen zur Partizipation scheitern in der Praxis jedoch häufig. Lesen Sie hier  - basierend auf einer qualitativ-explorativen Expertenstudie - mehr über die wesentlichen Problemfelder der mitarbeiterzentrierten Produktentwicklung und profitieren Sie von konkreten Handlungsempfehlungen aus der Praxis.
Jetzt gratis downloaden!

Bildnachweise