Java – Der Grundkurs
Total Page:16
File Type:pdf, Size:1020Kb
“buch”—2019/4/30—11:43—page23—#19 Kapitel 1 1 Hello World! Traditionell ist Hello World das erste Programm in jeder Programmier- anleitung bzw. in jedem Programmierbuch. Die Aufgabe dieses Pro- gramms besteht darin, die Zeichenkette 'Hello World' auf dem Bildschirm bzw. in einem Terminalfenster auszugeben. »Eine ziemlich triviale Aufgabe«, werden Sie einwenden. »Dazu muss ich nicht das Programmieren lernen!« Damit haben Sie natürlich recht. Tat- sächlich besteht der Sinn des Hello-World-Programms nicht darin, eine Zeichenkette auszugeben, sondern vielmehr darin, die Syntax und Werk- zeuge einer neuen Programmiersprache erstmals auszuprobieren. Genau darum geht es in diesem Kapitel: Sie lernen die wichtigsten Eigen- schaften von Java kennen, erfahren, was Sie installieren müssen, bevor Sie Ihr erstes Programm verfassen können, und werden mit Java-Entwick- lungswerkzeugen wie java, javac und der IntelliJ IDEA vertraut. 1.1 Einführung Programmieren heißt, einem Computer in einer für ihn verständlichen Sprache Anweisungen zu geben. Als Nichtprogrammierer können Sie Com- puterprogramme selbstverständlich schon anwenden, im Web surfen, eine Mail verfassen, eine Android-App bedienen oder auf dem iPad Schach spie- len. Aber wenn Sie ein Programm benötigen, das es in dieser Form noch nicht gibt, dann müssen Sie dieses selbst entwickeln. Dieses Buch vermit- telt Ihnen die dazu erforderlichen Grundkenntnisse. Natürlich gibt es auch ganz pragmatische Gründe: Sie wollen (oder müs- sen?) programmieren lernen, weil dies Teil Ihrer Schul- oder Universitäts- ausbildung ist. Oder Sie möchten programmieren können, um damit Geld zu verdienen. Oder es reizt Sie einfach, die IT-Welt besser verstehen zu 23 “buch” — 2019/4/30 — 11:43 — page 24 — #20 “buch”—2019/4/30—11:43—page25—#21 1 Hello World! 1.1 Einführung können. Aus meiner persönlichen Sicht hat Programmieren auch etwas Zwar enthält Kapitel 17, »JavaFX«, einen knappen Einstieg in die Program- 1 Spielerisches an sich. Programmieren kann Spaß machen – so wie das mierung grafischer Benutzeroberflächen, aber ansonsten dominieren Lösen eines Denksporträtsels. Textmodusprogramme. Warum? Dieses Buch konzentriert sich auf die Java-Grundlagen. Diese Grund- Warum Java? kenntnisse können am besten in kompakten, kleinen Programmen ver- Programmiersprachen gibt es sprichwörtlich wie Sand am Meer. Warum mittelt werden, also ohne grafische Oberfläche und ohne Einbindung gerade Java? Java hat sich in den vergangenen Jahrzehnten als die erste in eine Webseite. Sorry! Sobald Sie dieses Buch durchgearbeitet haben, Programmiersprache etabliert, mit der unzählige Studenten ihre ersten verfügen Sie über ein solides Java-Fundament, mit dem Sie sich dann Programme verfasst haben. Dafür gibt es gute Gründe: weiter in ein Java-Teilgebiet einarbeiten können, z. B. in die Entwicklung von Webanwendungen. Java ist kostenlos. Java zeichnet sich durch eine klare, relativ leicht zu erlernende Syntax aus, was gerade im schulischen Bereich ein großer Vorteil ist. Das große Versionsnummernchaos Java ist plattformunabhängig: Ein einmal entwickeltes Java-Programm Zwischen Java 8 (vorgestellt im März 2014) und Java 9 (September 2017) kann daher gleichermaßen unter Windows, Linux oder macOS ausge- vergingen mehr als drei Jahre. Oracle erschien das zu langsam und hat führt werden. deswegen 2017 den Java-Entwicklungszyklus auf den Kopf gestellt – und Java steht als Open-Source-Code zur Verfügung. Damit kann Java un- das Kind sprichwörtlich mit dem Bade ausgeschüttet. Seit Herbst 2017 kompliziert auf neue Plattformen portiert werden. Genau das war vor erscheint alle sechs Monate eine neue Java-Version. einigen Jahren der Fall, als Google Android entwickelte und auf Java als Für Java-Freaks, die ständig die neuesten Features ausprobieren möchten, Programmiersprache für die App-Entwicklung setzte. ist das fantastisch. Für alle anderen Entwickler ist das weniger toll. Warum? Java ist im Unternehmensbereich sehr beliebt. Es gibt unzählige Ent- wicklungswerkzeuge, die dabei helfen, exakten, sauberen und wart- Professionelle Entwickler brauchen für die Entwicklung neuer Pro- baren Code zu entwickeln – auch bei sehr großen Projekten. gramme Zeit. Danach soll das Programm in der Regel beim Kunden über Jahre laufen. Diese Prozesse erfordern ein Maß an Stabilität, das Java ist sehr universell anwendbar. Sie können damit einfache Konso- mit halbjährlichen Updates nicht mehr gegeben ist. lenkommandos ebenso entwickeln wie Windows-Programme mit gra- fischer Benutzeroberfläche, Webanwendungen für den Server-Einsatz Im Unterricht ist es eine Katastrophe, wenn jeder Student bzw. jede oder Android-Apps. Studentin eine andere Java-Version verwendet. Administratoren von Schulen und Universitäten sind damit überfordert, Laborrechner halb- jährlich zu aktualisieren. Die eingesetzten Entwicklungsumgebungen »Die Beispiele in diesem Buch sind so langweilig!« (z. B. Eclipse oder IntelliJ IDEA) müssen ebenfalls zur jeweiligen Java- Wenn Sie dieses Buch durchblättern, werden Sie schnell feststellen, dass Version passen. ich Ihnen hier leider nicht zeigen kann, wie Sie ein tolles, neues Android- Auch für Linux-Distributoren sind die ständigen Versionswechsel eine Spiel oder eine interaktive Webseite programmieren. Herausforderung. Auf vielen Linux-Systemen laufen deswegen stan- 24 25 “buch”—2019/4/30—11:43—page26—#22 “buch”—2019/4/30—11:43—page27—#23 1 Hello World! 1.1 Einführung dardmäßig relativ alte Java-Versionen. Aktuelle Versionen können zwar Falls Sie IntelliJ als Entwicklungsumgebung verwenden, erkennt IntelliJ 1 manuell installiert werden, das verursacht aber Update-Probleme. beim Laden der Beispielprogramme zu diesem Buch möglicherweise die Bücher und Schulungsvideos zu Java können unmöglich alle sechs auf Ihrem Rechner installierte Java-Version nicht. Dieses Problem lässt Monate neu gedruckt bzw. aktualisiert werden. sich zum Glück ganz leicht lösen: Sie führen File • Project Structure Project SDK Project Diese Probleme hat natürlich auch Oracle erkannt und mit sogenannten aus und stellen die beiden Listenfelder für und language level LTS-Versionen teilweise gelöst. Alle paar Jahre gibt es besondere Java-Ver- neu ein – fertig! (Details folgen in Abschnitt 1.8, »Hello sionen mit Long Time Support (LTS). Zuletzt war das bei Java 11 der Fall, das IntelliJ IDEA« sowie im Anhang.) nächste Mal wird dies voraussichtlich für Java 17 gelten. Die Besonderheit derartiger LTS-Versionen besteht darin, dass sie über einen langen Zeit- raum mit Sicherheits-Updates und Fehlerbehebungen (Bugfixes) versorgt Kleines Java-Glossar werden und somit jahrelang produktiv genutzt werden können. Spätestens beim Versuch, Java zu installieren, werden Sie mit einer Menge Das LTS-Modell hat aber einen Haken: Die Bugfixes gibt es nur für Kunden Abkürzungen konfrontiert. Deren Bedeutung ist rasch erklärt: mit einer kostenpflichtigen Lizenz. Als Privatanwender können Sie natür- JRE versus JDK: Je nachdem, ob Sie Java-Programme nur ausführen lich kostenfrei bei der jeweils letzten LTS-Version bleiben, müssen dann oder aber selbst entwickeln möchten, müssen Sie auf Ihrem Rechner aber auf Bugfixes verzichten. Die Alternative besteht darin, dass Sie eben das Java Runtime Environment (JRE)oderaberdasJava Development Kit alle sechs Monate die jeweils neueste Java-Version samt einer dazu pas- (JDK) installieren. Die Trennung zwischen diesen Varianten hat den Vor- senden Entwicklungsumgebung installieren. Eine dritte Variante ist es, die teil, dass für reine Java-Anwender das viel kleinere JRE ausreicht. (Das originalen Java-Pakete von Oracle durch dazu kompatible Pakete mit einer JDK enthält übrigens das JRE, Sie müssen also nicht beides installieren.) liberaleren Update-Politik zu ersetzen. Entsprechende Downloads finden Sie z. B. unter https://adoptopenjdk.net. Java SE versus Java EE: Ich habe einleitend erwähnt, dass Java zur Ent- wicklung von ganz unterschiedlichen Anwendungstypen verwendet wird. Gewissermaßen als Normalfall gelten einfache Programme mit Empfehlung oder ohne grafische Benutzeroberfläche. Dafür ist die Java Standard Wenn es Ihnen nur darum geht, Java zu lernen, empfehle ich Ihnen, ent- Edition (Java SE) gedacht. Speziell für die Entwicklung von Web- und weder die letzte LTS-Version oder eben die gerade aktuelle Java-Version Server-Anwendungen gibt es die Java Enterprise Edition (Java EE). Java zu installieren und es dann dabei zu belassen. Fertig! EE ist eine Erweiterung von Java SE um diverse Zusatzkomponenten bzw. Bibliotheken. Dieses Buch bezieht sich zwar auf Java 11, aber es ist durchaus kein Pro- blem, wenn Sie auf Ihrem Rechner z. B. Java 13 verwenden. Niemand Oracle Java versus OpenJDK: Oracle kaufte 2010 die Firma Sun auf und zwingt Sie, die seit Java 11 durchgeführten Neuerungen zu nutzen. Der übernahm damit auch die Kontrolle über das von Sun entwickelte Java. rasche Versionszyklus bringt es mit sich, dass die Neuerungen pro Ver- Die offiziellen Java-Versionen stammen somit von Oracle. sion in der Regel bescheiden sind und häufig Features betreffen, die für Da Sun aber bereits 2006 den Quellcode von Java als Open-Source-Code Einsteiger gar nicht relevant sind. Ein Großteil der in diesem Buch prä- freigab, gibt es weitere Java-Implementierungen. Am populärsten ist sentierten Programme funktioniert sogar noch mit Java 9! das OpenJDK des Iced-Tea-Projekts. Es kommt standardmäßig auf allen 26 27 “buch” — 2019/4/30 — 11:43 — page 28 — #24 “buch”—2019/4/30—11:43—page29—#25 1 Hello World! 1.2 Java und die IntelliJ IDEA