Skip to main content

2024 | Buch

Grundkurs JAVA

Von den Grundlagen bis zu Datenbank- und Netzanwendungen

insite
SUCHEN

Über dieses Buch

Lernen Sie schrittweise die wichtigsten Aspekte von Java kennen, von den elementaren Grundlagen über Konzepte der Objektorientierung und grafische Benutzungsoberflächen bis zu Datenbankanwendungen und Kommunikation im Netzwerk.

Die 12. Auflage dieses erfolgreichen Lehrbuches erweitert und aktualisiert die Inhalte auf die Java-Version 21.

Rund 250 Übungen unterstützen Sie dabei, die einzelnen Themen zu vertiefen. Der vollständige Quellcode der im Buch behandelten Programme und alle Lösungen zu den Aufgaben sind auf der Webseite zu diesem Buch verfügbar.

Das Buch richtet sich an Studierende der Informatik und der Wirtschaftsinformatik sowie an IT-Beschäftigte in Ausbildung und Beruf. Und an alle, die bereits grundlegende Kenntnisse in einer Programmiersprache haben und auf Java umsteigen möchten.

Inhaltsverzeichnis

Frontmatter
Kapitel 1. Einleitung

Die Programmiersprache Java, erschienen 1995, ist mittlerweile schon über 25 Jahre alt. Sie gehört noch immer zu den populärsten Programmiersprachen und liegt in den Rankings stets auf einem der obersten Plätze.

Dietmar Abts
Kapitel 2. Datentypen und Variablen

Damit ein Programm Berechnungen und andere Verarbeitungen vornehmen kann, muss es vorübergehend Zahlen, Zeichenketten und andere Daten speichern. Dazu dienen Variablen.

Dietmar Abts
Kapitel 3. Operatoren

Mit Operatoren können Zuweisungen und Berechnungen vorgenommen und Bedingungen formuliert und geprüft werden. Operatoren sind Bestandteile von Ausdrücken.

Dietmar Abts
Kapitel 4. Kontrollstrukturen

Anweisungen stellen die kleinsten ausführbaren Einheiten eines Programms dar. Eine Anweisung kann

Dietmar Abts
Kapitel 5. Arrays

Ein Array ist eine geordnete Sammlung von Elementen desselben Datentyps, die man unter einem gemeinsamen Namen ansprechen kann. Die Elemente eines Arrays enthalten alle entweder Werte desselben einfachen Datentyps oder Referenzen auf Objekte desselben Typs.

Dietmar Abts
Kapitel 6. Klassen, Objekte und Methoden

Dieses Kapitel behandelt objektorientierte Sprachelemente von Java. Im Vordergrund stehen die Begriffe Klasse, Objekt, Attribut und Methode. Die objektorientierte Programmierung löst sich von dem Prinzip der Trennung von Daten und Funktionen, wie sie in den traditionellen (prozeduralen) Programmiersprachen üblich ist. Stattdessen werden Daten und Funktionen zu selbständigen Einheiten zusammengefasst.

Dietmar Abts
Kapitel 7. Pakete

Eine größere Anwendung besteht aus einer Vielzahl von Klassen, die aus Gründen der Zweckmäßigkeit (z. B. zur besseren Übersicht) zu Einheiten, den Paketen, zusammengefasst werden können. Dabei darf der Name einer Klasse in einem Paket mit dem einer Klasse in einem anderen Paket übereinstimmen.

Dietmar Abts
Kapitel 8. Vererbung

Neue Klassen können auf Basis bereits vorhandener Klassen definiert werden. Vererbung ist der Mechanismus, der dies ermöglicht.

Dietmar Abts
Kapitel 9. Interfaces

Interfaces sind Schnittstellenbeschreibungen, die festlegen, was man mit der Schnittstelle machen kann. Dabei handelt es sich hauptsächlich um abstrakte Methoden, die in Klassen implementiert werden können. Objekte von Klassen, die dieselbe Schnittstelle implementieren, können einheitlich verarbeitet werden.

Dietmar Abts
Kapitel 10. Vererbung vs. Delegation

Es ist nicht immer sinnvoll, die Wiederverwendung von Code in Klassen durch Vererbung zu lösen. Insbesondere dann, wenn die Klasse, von der abgeleitet werden soll, nicht unter der Kontrolle desselben Programmierers ist, kann eine unbedarfte Nutzung sogar zu Fehlern führen. Die Subklasse hängt von den Implementierungsdetails der Superklasse ab. Diese muss man kennen, damit die Subklasse einwandfrei funktioniert.

Dietmar Abts
Kapitel 11. Geschachtelte Klassen

Geschachtelte Klassen sind Klassen, die innerhalb einer bestehenden Klasse definiert sind. Solche Klassen werden beispielsweise bei der Ereignisbehandlung im Rahmen der Entwicklung von grafischen Oberflächen verwendet. Zur Abgrenzung nennt man die "normalen" Klassen auch Top-Level-Klassen.

Dietmar Abts
Kapitel 12. Konstanten und enum-Aufzählungen

Konstanten sind Variablen, die nach der erstmaligen Initialisierung nicht mehr verändert werden können. Der Definition werden die Schlüsselwörter static und final vorangestellt.

Dietmar Abts
Kapitel 13. Ausnahmebehandlung

Während der Ausführung eines Programms können diverse Fehler bzw. Ausnahmen (Exceptions) auftreten, z. B. eine ganzzahlige Division durch 0, der Zugriff auf ein Array-Element mit einem Index außerhalb der Grenzen des Arrays, der Zugriff auf eine nicht vorhandene Datei oder der Aufruf einer Methode mit einer Referenzvaribalen, deren Wert null ist.

Dietmar Abts
Kapitel 14. Zeichenketten

Zeichenketten (Strings) werden durch die Klasse String repräsentiert. Daneben gibt es eine Reihe weiterer Klassen, die die Verarbeitung von Zeichenketten unter - stützen, z. B. StringBuilder und StringBuffer.

Dietmar Abts
Kapitel 15. Ausgewählte Klassen

In diesem Kapitel werden wichtige Klassen der Java-Standard-Edition vorgestellt, die nutzbringend in verschiedenen Szenarien eingesetzt werden können.

Dietmar Abts
Kapitel 16. Internationalisierung

Häufig soll ein und dieselbe Softwareversion in mehreren Ländern und unterschiedlichen Sprachregionen eingesetzt werden. Dabei ist es wichtig, dass die Programme leicht und möglichst ohne den Quellcode ändern zu müssen an die regionalen Gegebenheiten angepasst werden können.

Dietmar Abts
Kapitel 17. Services

Ein Ziel bei der Entwicklung größerer Systeme ist, die Abhängigkeiten zwischen den Typen (Klassen, Interfaces) auf ein Mindestmaß zu reduzieren und sich nicht an konkrete Implementierungen zu binden.

Dietmar Abts
Kapitel 18. Javadoc

Mit dem JDK-Tool javadoc kann aus Java-Quelltexten, die mit Dokumentationskommentaren versehen sind, automatisch Dokumentation im HTML-Format generiert werden.

Dietmar Abts
Kapitel 19. Generische Typen und Methoden

Klassen, Records, Interfaces und Methoden können mit Hilfe von formalen Typparametern (Platzhaltern) implementiert werden, die erst bei der Verwendung durch einen konkreten Typ ersetzt werden.

Dietmar Abts
Kapitel 20. Collections

Alle Klassen und Interfaces des Collections Framework sind als generische Typen definiert. Hierdurch erreicht man, dass alle Elemente eines Daten-Containers vom gleichen vorgegebenen Typ sind. Collections bieten einen typsicheren und effizienten Zugriffe auf die gespeicherten Objekte.

Dietmar Abts
Kapitel 21. Lambda-Ausdrücke

Bis zur Java-Version 7 gab es keine Möglichkeit, direkt eine Methode als Argument einer anderen Methode beim Aufruf zu übergeben und damit diese mit einer bestimmten Funktionalität auszustatten.

Dietmar Abts
Kapitel 22. Streams

Mit Java-Version 8 wurde das Stream-Konzept eingeführt. Streams erleichtern die Ausführung von Operationen auf endlichen oder unendlichen Folgen von Datenelementen. Dabei sind auch mehrstufige Berechnungen möglich. Streams können beispielsweise für alle Klassen, die das Interface Collection implementieren, erzeugt werden.

Dietmar Abts
Kapitel 23. Optionale Werte

Die Behandlung von null-Werten kann mitunter lästig sein. Ein allzu leichtsinniger Umgang hiermit führt aber oft zu unangenehmen Laufzeitfehlern.

Dietmar Abts
Kapitel 24. Dateien und Datenströme

Java bietet eine umfangreiche Bibliothek von Klassen und Interfaces im Paket java.io und java.nio zur Verarbeitung von Dateien, zum Lesen von der Tastatur, zur Ausgabe auf dem Bildschirm, zum Senden und Empfangen von Nachrichten über Netzwerkverbindungen und vieles mehr.

Dietmar Abts
Kapitel 25. Serialisierung

Serialisieren ermöglicht das dauerhafte Speichern von kompletten Objekten mit allen Variablenwerten über die Laufzeit der Anwendung hinaus. Die gespeicherten Daten können dann später genutzt werden, um Objekte zur Laufzeit der Anwendung wiederherzustellen.

Dietmar Abts
Kapitel 26. Nebenläufige Programmierung

Nebenläufigkeit ist die Eigenschaft eines Programms, zwei oder mehrere Aktivitäten so ausführen, dass alle voranschreiten.

Dietmar Abts
Kapitel 27. GUI-Programmierung mit Swing

Java hat zwei Pakete zur Programmierung grafischer Benutzerschnittstellen, auch GUI (Graphical User Interface) genannt.

Dietmar Abts
Kapitel 28. Einführung in JavaFX

JavaFX (alternative Bezeichnung OpenJFX) ist das aktuelle Java-Framework zur Erstellung von GUIs, das die klassischen GUI-Technologien AWT und Swing ablösen soll.

Dietmar Abts
Kapitel 29. Datenbankzugriffe mit JDBC

Ein Datenbanksystem besteht aus der Software zur Datenverwaltung (DBMS, Datenbankmanagementsystem) und den in ein oder mehreren Datenbanken gespeicherten Daten.

Dietmar Abts
Kapitel 30. Netzwerkkommunikation

Für die Kommunikation in Rechnernetzen auf der Basis des Protokolls TCP/IP (Transmission Control Protocol/Internet Protocol) stellt das Paket java.net die erforderlichen Klassen und Methoden zur Verfügung.

Dietmar Abts
Kapitel 31. Fallbeispiel

In diesem Kapitel wird ein etwas umfangreicheres Programm vorgestellt. Es zeigt, dass eine gut durchdachte Architektur für das zu entwickelnde Programm eine wesentliche Grundlage der Entwicklung ist.

Dietmar Abts
Kapitel 32. Prinzipien objektorientierten Designs

Hat ein Softwareprojekt eine bestimmte Größe (ausgedrückt als Anzahl von Programmen, Modulen, Klassen usw.) erreicht, kann es zunehmend aufwändiger werden, Programme zu warten, Fehler zu finden, Änderungen und Erweiterungen einzubringen.

Dietmar Abts
Kapitel 33. Einführung in das Modulsystem

Mit der Java-Version 9 wurde die Modularisierung als Spracherweiterung eingeführt. Sie ermöglicht es, Programme in Module zu unterteilen (eine weitere Gliederungsmöglichkeit oberhalb der package-Ebene) und Abhängigkeiten zwischen den Modulen zu definieren.

Dietmar Abts
Kapitel 34. IntelliJ IDEA, Debugging und Testen mit Junit

Dieses Kapitel enthält einige nützliche Hinweise zum Umgang mit der Entwicklungsumgebung IntelliJ IDEA, zum Debugging und zum Testen von Java-Code.

Dietmar Abts
Backmatter
Metadaten
Titel
Grundkurs JAVA
verfasst von
Dietmar Abts
Copyright-Jahr
2024
Electronic ISBN
978-3-658-43574-5
Print ISBN
978-3-658-43573-8
DOI
https://doi.org/10.1007/978-3-658-43574-5