Java Schritt für Schritt - Thomas Kessel - E-Book

Java Schritt für Schritt E-Book

Thomas Kessel

0,0
28,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

Die Programmiersprache Java von Anfang bis Ende durchzuarbeiten und zu erlernen scheint für viele Studierende eine große Hürde zu sein. Nicht mit diesem Arbeitsbuch. Es führt Schritt für Schritt und leicht verständlich in die Programmiersprache ein. Das Buch umfasst 14 Kapitel: Einführung in Java; Variablen, Datentypen, Operatoren; Kontrollstrukturen; Felder / Arrays; Methoden; Sichtbarkeit / Gültigkeit; Objektorientierte Konzepte; Ausnahmen / Exceptions; Zeichenketten / Strings; Lineare Datenstrukturen; Datenströme / Streams; Datenbanken mit Java; Graphische Benutzeroberflächen mit Swing: Einführung; komplexere Oberflächen. Zahlreiche Übersichten und Zusammenfassungen erleichtern das Verständnis. utb+: Begleitend zum Buch steht den Leser:innen ein eLearning-Kurs für die Prüfungsvorbereitung zur Verfügung. Erhältlich über utb.de.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB

Seitenzahl: 190

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



utb 4432

Eine Arbeitsgemeinschaft der Verlage

Brill | Schöningh – Fink · Paderborn

Brill | Vandenhoeck & Ruprecht · Göttingen – Böhlau · Wien · Köln

Verlag Barbara Budrich · Opladen · Toronto

facultas · Wien

Haupt Verlag · Bern

Verlag Julius Klinkhardt · Bad Heilbrunn

Mohr Siebeck · Tübingen

Narr Francke Attempto Verlag – expert verlag · Tübingen

Psychiatrie Verlag · Köln

Ernst Reinhardt Verlag · München

transcript Verlag · Bielefeld

Verlag Eugen Ulmer · Stuttgart

UVK Verlag · München

Waxmann · Münster · New York

wbv Publikation · Bielefeld

Wochenschau Verlag · Frankfurt am Main

Prof. Dr. Marcus Deininger ist Professor für Informatik an der Hochschule für Technik Stuttgart mit dem Schwerpunkt Software Engineering.

Prof. Dr. Thomas Kessel lehrt Wirtschaftsinformatik an der Dualen Hochschule Baden-Württemberg in Stuttgart.

Marcus Deininger / Thomas Kessel

JavaSchritt für Schritt

Arbeitsbuch mit eLearning-Kurs

3., überarbeitete Auflage

Umschlagabbildung: © iStockphoto da-kuk

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.dnb.de abrufbar.

3., überarbeitete Auflage 2024

2., überarbeitete Auflage 2018

1. Auflage 2016

DOI: https://doi.org/10.36198/9783838561776

© UVK Verlag 2024

– ein Unternehmen der Narr Francke Attempto Verlag GmbH + Co. KG

Dischingerweg 5, D-72070 Tübingen

Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.

Alle Informationen in diesem Buch wurden mit großer Sorgfalt erstellt. Fehler können dennoch nicht völlig ausgeschlossen werden. Weder Verlag noch Autor:innen oder Herausgeber:innen übernehmen deshalb eine Gewährleistung für die Korrektheit des Inhaltes und haften nicht für fehlerhafte Angaben und deren Folgen. Diese Publikation enthält gegebenenfalls Links zu externen Inhalten Dritter, auf die weder Verlag noch Autor:innen oder Herausgeber:innen Einfluss haben. Für die Inhalte der verlinkten Seiten sind stets die jeweiligen Anbieter oder Betreibenden der Seiten verantwortlich.

Internet: www.narr.de

eMail: [email protected]

Einbandgestaltung: siegel konzeption | gestaltung

utb-Nr. 4432

ISBN 978-3-8252-6177-1 (Print)

ISBN 978-3-8463-6177-1 (ePUB)

Vorwort

Java gehört zu den populärsten Programmiersprachen weltweit und wird sowohl in Theorie als auch in der Praxis intensiv eingesetzt. In Firmen wird Java sowohl für große geschäftskritische unternehmensweite Informationssysteme als auch für die Programmierung von technischen Anwendungen verwendet.

In den letzten Jahren wird Java bevorzugt als erste Programmiersprache in Schule, Ausbildung und Studium unterrichtet, da sie auf einfachen, verständlichen und überzeugenden Konzepten aufgebaut ist.

In dem vorliegenden Arbeitsbuch werden Schritt für Schritt die grundlegenden Sprachelemente eingeführt, die Konzepte objektorientierter Programmierung in Java erläutert und die Nutzung relevanter Klassenbibliotheken (z.B. in Datenstrukturen oder bei der Ein- und Ausgabe) vorgestellt.

Zuerst werden die verfügbaren einfachen Datentypen und die Deklaration von Variablen beschrieben. Anschließend werden die Kontrollstrukturen wie z.B. die Sequenz, die Auswahl und die verschiedenen Schleifen eingeführt und an Beispielen erläutert. Abgerundet wird dies durch eine kompakte Darstellung der Felder oder Arrays. Methoden erlauben es bequem Anweisungen zusammenfassen und diese bequem aufzurufen.

Die Diskussion der Konzepte Sichtbarkeit und Gültigkeit, sowie des Geheimnisprinzips und der Zugriffsmodifier bereiten den Einstieg in die objektorientierte Programmierung vor. Die zentralen Begriffe Klassen, Objekte, abstrakte Klassen/Methoden und Schnittstellen stehen im Mittelpunkt und führen zur Vererbung und zum Polymorphismus. Die Frage der Fehlerbehandlung wird später im Kapitel der Exceptions behandelt.

Die Umsetzung der vorhergehenden Konzepte kann sehr schön in den betreffenden Kapiteln über Zeichenketten (Strings), lineare Datenstrukturen (Collections), den Datenströmen (Streams), Datenbanken und der graphischen Benutzeroberfläche anhand von zahlreichen Codebeispielen illustriert, erklärt und eingeübt werden.

Zu diesem Buch gibt es einen ergänzenden eLearning-Kurs aus 70 Fragen.

Mithilfe des Kurses können Sie online überprüfen, inwieweit Sie die Themen des Buches verinnerlicht haben. Gleichzeitig festigt die Wiederholung in Quiz-Form den Lernstoff.

Der eLearning-Kurs kann Ihnen dabei helfen, sich gezielt auf Prüfungssituationen vorzubereiten.

Der eLearning-Kurs ist eng mit vorliegendem Buch verknüpft. Sie finden im Folgenden zu den wichtigen Kapiteln QR-Codes, die Sie direkt zum dazugehörigen Fragenkomplex bringen. Andersherum erhalten Sie innerhalb des eLearning-Kurses am Ende eines Fragendurchlaufs neben der Auswertung der Lernstandskontrolle auch konkrete Hinweise, wo Sie das Thema bei Bedarf genauer nachlesen bzw. vertiefen können. Diese enge Verzahnung von Buch und eLearning-Kurs soll Ihnen dabei helfen, unkompliziert zwischen den Medien zu wechseln, und unterstützt so einen gezielten Lernfortschritt.

Die Autoren haben zu diesem Lehrbuch einen vorlesungbegleitenden Foliensatz zur Verfügung gestellt. Er ist unter

https://files.narr.digital/9783825261771/Zusatzmaterial.zip downloadbar.

Inhaltsübersicht

Vorwort

Schritt 1: Einführung in Java

Schritt 2: Variablen, Datentypen, Operatoren

Schritt 3: Kontrollstrukturen

Schritt 4: Felder / Arrays

Schritt 5: Methoden

Schritt 6: Sichtbarkeit / Gültigkeit

Schritt 7: Objektorientierte Konzepte

Schritt 8: Ausnahmen / Exceptions

Schritt 9: Zeichenketten / Strings

Schritt 10: Lineare Datenstrukturen

Schritt 11: Datenströme / Streams

Schritt 12: Datenbanken mit Java

Schritt 13: Graphische Benutzeroberflächen mit Swing: Einführung

Schritt 14: Graphische Benutzeroberflächen mit Swing: komplexere Oberflächen

Stichwortverzeichnis

Inhaltsverzeichnis

Vorwort

Schritt 1: Einführung in Java

1.1Historie

1.2Begriffe

1.3Besonderheiten von Java

1.4Konventionen und Notationen

1.5Das erste Java-Programm

Schritt 2: Variablen, Datentypen, Operatoren

2.1Datentypen

2.2Operatoren

Schritt 3: Kontrollstrukturen

3.1Anweisungen

3.2Sequenz

3.3Auswahl

3.4Schleifen / Wiederholungen

Schritt 4: Felder / Arrays

4.1Werte in Arrays anordnen

Schritt 5: Methoden

5.1Anweisungen in Methoden zusammenfassen

Schritt 6: Sichtbarkeit / Gültigkeit

6.1Java-Komponenten

6.2Das Geheimnisprinzip und Zugriffsmodifier

6.3Qualifikation und Import

6.4Gültige und sichtbare Elemente

6.5Innere Elemente

Schritt 7: Objektorientierte Konzepte

7.1Klassen und Objekte

7.2Erweiterung / Vererbung

7.3Abstrakte Klassen und Methoden

7.4Schnittstellen / Interfaces

7.5Aufzählungstypen / Enumerations

7.6Polymorphismus

7.7Best Practices der objektorientierten Programmierung

Schritt 8: Ausnahmen / Exceptions

8.1Ausnahmen auslösen und behandeln

Schritt 9: Zeichenketten / Strings

9.1Die Klassen String und StringBuilder

9.2Erzeugung von Strings

9.3Vergleich von Strings

9.4Extraktion von Zeichen oder Teilstrings

9.5Umwandeln von Strings

9.6Umwandlung von elementaren Datentypen in Strings

9.7Verarbeitung von Zeichenketten mit der Klasse StringBuilder

Schritt 10: Lineare Datenstrukturen

10.1Überblick

10.2Typisierung von Collections

10.3Das Interface Collection

10.4Die Liste / List

10.5Die Menge / Set

10.6Die Schlange / Queue

10.7Der Keller / Stapel / Stack

10.8Die Assoziationsliste / Map

Schritt 11: Datenströme / Streams

11.1Datenquellen und -senken

11.2Daten- und Stream-Arten

11.3Lesen und Schreiben von Strömen in Java

11.4Lesen und Schreiben von Byte-Strömen

11.5Lesen und Schreiben von Textdateien

11.6Lesen und Schreiben von Java-Daten

11.7Objekte speichern und lesen

Schritt 12: Datenbanken mit Java

12.1Java und Datenbanken

12.2Relationale Datenbanken und SQL

12.3Datenbankzugriff mit JDBC

Schritt 13: Graphische Benutzeroberflächen mit Swing: Einführung

13.1Benutzeroberflächen

13.2Aufbau von Swing-Oberflächen

13.3Einfache Widgets

13.4Interaktion mit Widgets

Schritt 14: Graphische Benutzeroberflächen mit Swing: komplexere Oberflächen

14.1Komplexere Oberflächen

14.2Übersicht über das Anwendungsbeispiel

14.3MVC: Trennung von Oberfläche und Anwendung

14.4Weitere Widgets: Auswahllisten

14.5Layout-Manager

14.6Strukturierung der Oberfläche

14.7Weitere Widgets

Stichwortverzeichnis

Schritt 1:

Einführung in Java

Lernhinweise und Prüfungstipps

Die Lernfragen zu diesem Kapitel finden Sie unter:https://narr.kwaest.io/s/1229

Was erwartet mich in diesem Kapitel?

In diesem Kapitel geht es um die Programmiersprache Java, die wichtigsten Begriffe, die Besonderheiten von Java, die üblichen Notationen und Konventionen in Java, die notwendigen Werkzeuge zur Softwareentwicklung sowie um das erste „Hallo Welt“-Programm in Java.

Welche Schlagwörter lerne ich kennen?

Java Software Development Kit (SDK), Java Development Kit (JDK) Java Runtime Environment (JRE) Plattformunabhängigkeit Objektorientierung Einfachheit Netzwerkfähigkeit Sicherheit Offenheit Java Standard Edition (JSE) Java Enterprise Edition (JEE) Java Embedded Integrierte Entwicklungsumgebung (IDE) Eclipse, NetBeans

Wofür benötige ich dieses Wissen?

Dieses Wissen wird benötigt, um (1) die zentralen Java-Begriffe zu verstehen, (2) Java als Programmiersprache (besser) einordnen zu können, (3) die Ausrichtungen der einzelnen Java-Editionen zu erkennen, und (4) die Vorteile der erforderlichen Werkzeuge, wie z.B. die integrierte Entwicklungsumgebung, zu sehen.

Welchen Prüfungstipp kann ich aus diesem Abschnitt ziehen?

In Prüfungen wird häufig gewünscht, die Besonderheiten von Java zu erklären und die einzelnen Java-Begriffe oder -Editionen zu erläutern.

1.1Historie

Java wurde 1995 von einem Team von Entwicklern um James Gosling und Billy Joy im Auftrag der Firma SUN Microsystems entworfen und umgesetzt. Im Jahr 2010 wurde SUN Microsystems von Oracle übernommen. Im Zug dieser Transaktion wurden auch alle intellektuellen Rechte an Java, z.B. die Patente, Lizenzen und Urheberrechte, an Oracle übertragen.

Die Entwicklung von Java wurde stark durch andere Programmiersprachen, wie z.B. C++ und Smalltalk, beeinflusst. Java selbst hat wiederum zu einer Vielzahl von neuen Programmiersprachen, wie z.B. Groovy, AspectJ, Clojure oder Scala, hervorgebracht, die die zugrundeliegende Architektur, z.B. die virtuelle Java-Maschine, übernehmen oder einzelne Aspekte vertiefen.

Die Weiterentwicklung von Java erfolgt im Rahmen des Java Community Processes (JCP), an dem sich viele renommierte IT-Hersteller, IT-Dienstleister und Softwareunternehmen beteiligen. Trotz der Einbindung anderer Unternehmen bleibt Oracle jedoch die bestimmende Kraft bei der Weiterentwicklung von Java. Vorschläge zu einer neuen Version einer bereits existierenden oder einer innovativen, erstmaligen Technologie werden in Form Java Specification Requests (JSR) definiert, der den jeweils aktuellen Stand der Diskussion definiert (einsehbar auf www.jcp.org). Die daraus resultierenden technischen Spezifikationen der verschiedenen Java-Technologien können auch auf den einschlägigen Webseiten der Firma Oracle eingesehen werden.

1.2Begriffe

Das Java Software Development Kit (Java SDK oder auch manchmal als JDK bezeichnet) ist die technische Voraussetzung, um in Java programmieren zu können. Es ist über die Webseiten von Oracle für verschiedene Hardware-Plattformen (z.B. Windows, Linux, MacOS) kostenlos verfügbar, es existieren darüber hinaus aber auch noch weitere Implementierungen von anderen Herstellern.

Das Java SDK umfasst zum einen den Compiler, der den Java-Quellcode in einen plattformübergreifenden Zwischencode (Bytecode) übersetzt, und zum anderen die Java-Laufzeitumgebung (Java Runtime Environment, JRE) inklusive der zahlreichen Klassenbibliotheken und dem Interpreter, der den Zwischencode in die jeweilige Zielplattform überführt. Java Development Kit (JDK) wird oft synonym zu Java SDK verwendet.

Aus diesem Ansatz ergeben sich zwei wesentliche Vorteile:

erstens, ein Anwender kann Zwischencode problemlos von einer Hardware-Plattform auf eine andere übertragen, wo er dort dann interpretiert wird, und

zweitens, ein Hersteller muss für eine neue Hardware-Plattform nur eine entsprechende Java-Laufzeitumgebung bereitstellen, was weit weniger aufwändig ist, als das gesamte Java SDK zu portieren.

Der Quelltext eines Java-Programms könnte prinzipiell zwar mit Hilfe eines Texteditors erstellen werden, aber dies wäre nur wenig sinnvoll, da weitere unterstützende Funktionen, wie z.B. die Ausführung oder das Debugging des Java-Codes, über die Kommandozeile aufgerufen werden müssten. Aus diesem Grund gibt es integrierte Entwicklungsumgebungen („Integrated Development Environments“, IDE), wie z.B. Eclipse oder NetBeans, die all diese Funktionalitäten in einer gemeinsamen Benutzeroberfläche bündeln und als kostenlose Versionen verfügbar sind.

1.3Besonderheiten von Java

Die wesentlichen Differenzierungsfaktoren von Java zum Zeitpunkt seines Entwurfs waren:

Plattformunabhängigkeit

Objektorientierung

Einfachheit

Netzwerkfähigkeit

Sicherheit

Offenheit/Open Source

Plattformunabhängigkeit bedeutet, dass der Java-Quellcode in den Zwischencode übersetzt wird und dann von jeder Java-Laufzeitumgebung, unabhängig von der Betriebssystem-Plattform, ausgeführt werden kann.

Die Java-Laufzeitumgebung ist (immer) eine Voraussetzung für die Ausführung von Java-Programmen und stellt eine Abstraktion von der konkreten Hardware dar. Insbesondere die plattformunabhängige Verfügbarkeit einer grafischen Benutzeroberfläche war ein wichtiges Alleinstellungsmerkmal bei der Markteinführung von Java. Grafische Benutzeroberflächen mit Java werden in Schritt 13 eingeführt.

Objektorientierung basiert darauf, dass Klassen definiert werden, von denen Instanzen oder Objekte erzeugt werden. Das Programm besteht dann in dem Versenden von Nachrichten zwischen den einzelnen Objekten (bzw. dem Aufruf von Methoden laut der Java-Terminologie).

Das Prinzip der Objektorientierung war zum damaligen Zeitpunkt bereits in einigen Programmiersprachen, z.B. Smalltalk, C++ oder Objective-C umgesetzt, aber erst durch Java erlangte die konsequente und durchgängige objektorientierte Programmierung die nötige Verbreitung und Unterstützung.

Typische Mechanismen von objektorientierten Programmiersprachen sind Klassen, die Vererbung und der Polymorphismus.

In Java wird das objektorientierte Paradigma ein wenig abgemildert, wenn es um die einfachen Datentypen geht, die nicht als Klassen implementiert sind. Die Konzepte der objektorientierten Programmierung werden in Schritt 7 betrachtet.

Unter Einfachheit versteht man bei einer Programmiersprache, dass die zugrundeliegenden Konstrukte übersichtlich, verständlich und leicht zu erlernen sind, so dass bereits mit wenigen Schlüsselwörtern und -konzepten eine große Ausdrucksfähigkeit erreicht wird.

Die Einfachheit von Java kommt in zwei Aspekten zum Tragen: zum einen orientiert sich die Syntax von Java an C und zum zweiten besteht Java aus einem „Sprachkern“ und Klassenbibliotheken. Das Besondere ist hierbei, dass der Sprachkern nur wenige, grundlegende Sprachkonstrukte und Schlüsselwörter enthält, so dass er leicht erlernbar und verständlich ist. Die Auslagerung vieler Funktionalitäten in die Klassenbibliotheken erlaubt eine große Flexibilität und kommt auch dadurch zum Ausdruck, dass es drei Versionen (Standard, Enterprise und Embedded) gibt, die sich in erster Linie aufgrund der Klassenbibliotheken unterscheiden. Der Sprachkern von Java wird in den Schritten 2 bis 4 vorgestellt.

Eine Programmiersprache gilt als netzwerkfähig, wenn die grundlegenden Funktionalitäten zum Aufbau und zur Beendigung einer Netzwerkverbindung integriert sind, z.B. über eine entsprechende Standard-Klassenbibliothek.

Die Netzwerkfähigkeit war von Anfang an in Java integriert und motivierte deshalb den Einsatz von Java in verteilten Anwendungen und bei der sich damals erst entwickelnden Web-Programmierung. Aufbauend auf diesen grundlegenden Features entwickelte sich sehr schnell die Java Enterprise Edition (JEE), die insbesondere für verteilte Systeme und große, geschäftskritische Anwendungen in Unternehmen ausgelegt ist.

Aufgrund der einfachen Erweiterbarkeit von Java kamen in den vergangenen Jahren immer mehr Klassen und Funktionen zur Netzwerkprogrammierung hinzu, die einfach in die bisherigen Klassenbibliotheken integriert oder in separate ausgelagert werden konnten.

Die Sicherheit einer Programmiersprache hängt von unterschiedlichen Aspekten ab: von einer zuverlässigen Speicherverwaltung, über die Typprüfung aller Variablen bis hin zu einer konsequenten Fehlerbehandlung, der Validierung des erzeugten Codes oder die eventuellen Einschränkungen bei der Ausführung der Java-Anwendung.

Zahlreiche Sicherheitsmechanismen sind von vorneherein in Java eingebunden. Das automatische Speichermanagement erlaubt es, nicht mehr benötigte Speicherbereiche nach Gebrauch wieder frei zu geben und so „memory leaks“ zu vermeiden. Memory leaks sind Speicherbereiche, die für die Nutzung eines Programms reserviert sind, die aber anschließend nicht mehr frei gegeben werden.

Alle Variablen müssen deklariert, typisiert und initialisiert werden, bevor sie verwendet werden dürfen. Dies reduziert deutlich die Gefahr von falschen oder unvollständigen Werten.

Die integrierte Fehlerbehandlung dank der Exceptions erlaubt es, auch auf Störungen des Programmablaufs zur Laufzeit entsprechend zu reagieren und diese sogar ggf. zu beheben. Die Ausnahmebehandlung wird in Schritt 11 diskutiert.

Die Sicherheit beschränkt sich dabei nicht nur auf die Programmierung, sondern sie kann sich insbesondere auf die Ausführung des Java-Codes erstrecken. Zur Abwehr von Schadsoftware kann überprüft werden, ob der Code selbst verändert wurde, oder es können sogar Sicherheitsregeln definiert werden, die die Ausführungs- und Zugriffsrechte der Anwendung einschränken, um so zu verhindern, dass ein potentieller Angreifer weitergehende Rechte erwirbt.

Als Offenheit wird die Veröffentlichung aller relevanten Schnittstellen, Formate und Technologien bezeichnet.

Unter Open Source versteht man in der Regel, dass der Quellcode öffentlich verfügbar gemacht wird, unter einer entsprechenden offenen Lizenz steht, also z.B. verändert, kopiert und weitergegeben werden kann, und sich eine Community, eventuell in Partnerschaft mit kommerziellen Firmen, um die Weiterentwicklung kümmert.

Ein Großteil der Java-Technologien wurden unter Open Source-Lizenzen gestellt und steht somit den Entwicklern zur Verfügung. Außerdem wurden die betreffenden Spezifikationen und Schnittstellen ebenfalls dokumentiert, so dass diese von Dritten implementiert oder problemlos genutzt werden können. Java ist also nicht primär ein Produkt, sondern die technische Spezifikation einer Technologie, die dann von Herstellern umgesetzt werden kann.

Neben den obigen technologischen Gründen gab es aber auch zahlreiche wirtschaftliche Gründe für den Erfolg Javas. Die Plattformunabhängigkeit hat z.B. zur Konsequenz, dass sich die Kosten für die Entwicklung, den Test und die Wartung von Java-Programmen (im Vergleich zu den herkömmlichen Programmiersprachen) erheblich reduzierten. Software-Anbieter müssen so nämlich nur noch eine Version programmieren, statt für jede Plattform jeweils eine unterschiedliche Version zu entwickeln.

Im Lauf der Zeit entstand um Java ein Ökosystem von Werkzeuganbietern, Dienstleistern, Entwicklern usw., die sich so gegenseitig unterstützten und gemeinsam ein enormes Know-how aufbauen konnten. Insbesondere dank der Vielfalt von Entwicklungswerkzeugen und -umgebungen wurde die Weiterentwicklung von Java deutlich beschleunigt.

Es gibt drei Editionen von Java, die unterschiedliche Ziele verfolgen und sich im Wesentlichen durch die Klassenbibliotheken unterscheiden:

Java Standard Edition (JSE): bietet grundlegende Funktionalitäten (inkl. grafischer Benutzeroberfläche, Datenbank, Netzwerk, Dateisystem usw.) an.

Java Enterprise Edition (JEE): ausgelegt für die Entwicklung unternehmenskritischer Anwendungen, es basiert auf der JSE und erweitert diese um weitere Technologien z.B. für verteilte Komponenten, Web-/Internet-Programmierung.

Java Embedded: angepasst für den Einsatz in eingebetteten Systemen.

Außerdem gibt es noch diverse Anpassungen von Java für den Einsatz in mobilen Systemen (z.B. in Android).

Entsprechend existieren auch verschiedene Kategorien von Java- Anwendungen, d.h. für die Editionen gibt es auch einen zugehörigen Anwendungstyp:

Klassische Desktop-Anwendung: sie ist in der Regel für den Stand-alone-Betrieb auf einem PC konzipiert und bietet dem Benutzer eine grafische Benutzeroberfläche an.

Unternehmensanwendung: mittels eines Clients (z.B. ein Browser) wird über das Netzwerk auf einen Applikationsserver zugegriffen, auf dem verschiedene Technologien, wie z.B. Java Servlets, Java Server Pages, Enterprise Java Beans, laufen. Eine Unternehmensanwendung zeichnet sich weiterhin dadurch aus, dass sie eine Datenbank und mehrere verteilte Komponenten besitzt, sowie für eine größere Zahl von Benutzern ausgelegt ist.

Eingebettete Anwendung: sie läuft innerhalb des umgebenden technischen Systems ab und ist in der Regel für die Außenwelt bzw. für den Benutzer nicht oder nur teilweise sichtbar

Mobile App: Web-Anwendungen können für die mobile Plattform angepasst und als hybride Applikation ausgeliefert werden oder sie werden direkt in Java, für das passende mobile Gerät geschrieben.

1.4Konventionen und Notationen

Im Laufe der Zeit haben sich gewisse Notationen und Konventionen für die Java-Programmierung entwickelt, die auch hier angewendet werden.

Im Folgenden geht es um drei Aspekte:

Die Darstellung von Java-Code im vorliegenden Buch:

-Programmcode wird in der Schriftart Consolas dargestellt.

-Schlüsselwörter werden fett dargestellt.

-Platzhalter für konkrete Namen, Schlüsselwörter oder Codeteile werden kursiv dargestellt.

-Mehrfache Wiederholungen werden durch einen Stern * am Ende dargestellt.

-Optionen werden durch eckige Klammern [ ] dargestellt.

-Alternativen werden durch einen Strich | abgetrennt.

-Analoge Fortsetzungen oder Auslassungen werden durch … dargestellt.

Die üblichen Konventionen für die Benennung von Variablen, Methoden und Klassen in Java:

-Die Bezeichnung einer Klasse beginnt mit einem Großbuchstaben.

-Die Namen einer Variablen und einer Methode beginnen mit einem Kleinbuchstaben.

-Die Bezeichner dürfen nicht mit einer Ziffer starten und dürfen keine Sonder- und Leerzeichen enthalten.

-Der Name einer Konstante wird vollständig in Großbuchstaben geschrieben.

-Bei zusammengesetzten Benennungen beginnt jedes Wort mit einem Großbuchstaben.

Weitergehende Standards zur Formatierung von Java Code und Systematik bei der Benennung von Bezeichnern:

-Hierzu gibt es eine Vielzahl von Konzepten. Die daraus resultierenden Richtlinien sind in Form von Coding Style Guides oder Lehrbüchern dokumentiert und können mittlerweile teilweise durch spezifische Werkzeuge automatisch überprüft werden.

1.5Das erste Java-Programm

In diesem Abschnitt geht es darum, die ersten Schritte in Java zu unternehmen. Dabei sollten zunächst die folgenden Hinweise beachtet werden:

Das Erlernen einer Programmiersprache erfordert auch praktische Übungen und Aufgaben, die gelöst werden müssen, vergleichbar dem Vorgehen beim Lernen einer Fremdsprache, einer Sportart oder eines Musikinstruments.

Für die Ausführung des folgenden Programms sind das Java SDK und eine integrierte Entwicklungsumgebung – z.B. Eclipse oder NetBeans – eine Voraussetzung, deshalb sollte man sich zuerst mit der Nutzung der Entwicklungsumgebung vertraut machen.

Das Vorgehen zur Erstellung des Java-Programms bei Nutzung einer Entwicklungsumgebung1 sieht prinzipiell wie folgt aus:

[1]Anlegen eines Java-Projekts.

[2]Erzeugung einer Java-Klassendatei → Eintragung des Klassennamens und die Generierung der main-Methode.

[3]Editieren der Java-Klasse.

[4]Übersetzen der Klasse.

[5]Ausführen der Klasse.

Das zentrale Element von Java ist die Klasse. Eine Klasse hat die Form public class Klassenname { Anweisungen } und muss in einer Datei gleichen Namens mit der Endung .java abgelegt sein. Dies bedeutet zum Beispiel, dass die Klasse HalloWelt in der gleichnamigen Datei HalloWelt.java gespeichert sein muss.

Die Methode, mit der ein Java-Programm gestartet wird, ist die Methode namens main, die immer die Form public static void main(String[] args) haben muss.

Ein einfaches Java-Programm, das den Text „Hallo Welt“ am Bildschirm ausgibt, hat die folgende Form:

public class HalloWelt {

public static void main(String[] args) {

System.out.println("Hallo Welt");

}

}

Listing 1: HalloWelt-Programm

[1]Die Klasse HalloWelt wird definiert.

[2]Die Methode main wird festgelegt, eventuelle Eingaben werden als Parameter args in ein Array übernommen.

[3]Der Text „Hallo Welt“ wird auf der Standardausgabe, d.h. dem Bildschirm ausgegeben.

Die folgenden Schritte werden zur Ausführung des Programms durchgeführt:

Abb. 1: Übersetzung und Ausführung des Quellcodes von HalloWelt.java

Der Quellcode liegt in der Datei HalloWelt.java vor. Er wird durch den Befehl javac HalloWelt.java (der den Compiler des Java SDKs aufruft) in den Bytecode HalloWelt.class übersetzt. Diese ist dann auf allen Plattformen lauffähig ist, auf denen eine JRE verfügbar ist.

Anschließend wird der Bytecode interpretiert, ausgeführt und die Ausgabe „Hallo Welt“ erscheint als Resultat auf dem Bildschirm. In einer IDE werden diese Schritte innerhalb der Entwicklungsumgebung durchgeführt.

1Die Erstellung des Java-Programms ist prinzipiell auch mit einem Texteditor möglich. In diesem Fall müssen alle Dateien des Projekts manuell erzeugt werden.

Schritt 2:

Variablen, Datentypen, Operatoren

Lernhinweise und Prüfungstipps

Die Lernfragen zu diesem Kapitel finden Sie unter:https://narr.kwaest.io/s/1230

Was erwartet mich in diesem Kapitel?

In diesem Kapitel geht es um Variablen, Datentypen und Operatoren und wie diese deklariert und verwendet werden.

Welche Schlagwörter lerne ich kennen?

Variable Datentyp Operator Deklaration Initialisierung Wertzuweisung Konvertierung von Datentypen

Wofür benötige ich dieses Wissen?

Variablen speichern Werte zur weiteren Verarbeitung. Datentypen definieren die Wertebereiche einer Variablen und die möglichen Operationen, so dass die Gültigkeit der Werte geprüft werden kann. Operatoren erlauben beispielsweise die Veränderung einer Variablen oder die Berechnung eines neuen Wertes durch die Verknüpfung von Variablen oder Werten.

Welchen Prüfungstipp kann ich aus diesem Abschnitt ziehen?

In Prüfungen wird häufig nach (1) der Deklaration und Initialisierung von Variablen, (2) den verschiedenen Datentypen und Operatoren und (3) der Konvertierung von Datentypen gefragt. Im Rahmen von Aufgaben müssen die Variablen deklariert und initialisiert sowie Operatoren benutzt werden.

2.1Datentypen

Datentypen stellen die grundlegenden (Daten-)Bausteine einer Programmiersprache dar, denn es können nur die Werte und Daten gespeichert und verarbeitet werden, für die es auch entsprechende Datentypen gibt.

Ein Datentyp beschreibt eine Reihe von ähnlichen Werten und die darauf agierenden Operationen, z.B. die ganzen Zahlen von -128 bis 127 (byte), alle Zeichen des Zeichensatzes (char) oder die booleschen Werte true und false (boolean), sowie die entsprechenden Operationen (arithmetische für die Zahlen und logische für die booleschen Werte).

Ein Datentyp definiert die Art der Daten, die verfügbaren Operationen und den möglichen Wertebereich der Variable; dies bedeutet, dass die Variable nur Werte innerhalb dieses Spektrums annehmen kann.

Man unterscheidet in Java zwei Kategorien von Datentypen: einfache Datentypen und Referenztypen.

Einfache Datentypen, wie byte, short, int, long, float, double, char oder boolean, zeichnen sich dadurch aus, dass sie direkt den Wert enthalten.

Referenztypen, die z.B. durch ein Array oder eine Klasse definiert werden, enthalten den Verweis auf eine Speicherstelle, wo eine komplexe Datenstruktur vorliegt, die sich aus mehreren einfachen Datentypen oder Referenztypen zusammensetzt.2