- Die Programmiersprache Java zeichnet sich unter anderem durch Einfachheit, Robustheit und Plattformunabhängigkeit aus.
- Um in Java programmieren zu können, brauchen Sie das Java Development Kit und zum Testen die Java-Laufzeitumgebung.
- Zu den Grundkenntnissen in Java zählen die Kenntnis der verfügbaren Variablentypen, der Operatoren und der Syntax.
- Als objektorientierte Programmiersprache unterstützt Java sowohl einfache Vererbung, als auch Polymorphie.
Java lernen leicht gemacht: Die universelle Programmiersprache ist einfacher zu erlernen als beispielsweise C++ und bietet dennoch (fast) alles, was Entwickler brauchen. Wir zeigen Ihnen, wie Java aufgebaut ist und wie der zügige Einstieg in die Welt der plattformunabhängigen Entwicklung gelingt.
Gerade für Java-Anfänger stellt sich häufig die Frage, wie sie auf verständliche Art und Weise den Einstieg in die objektorientierte Programmiersprache finden sollen. Hier erfahren Sie alles Wissenswerte zum Thema JDK, den wichtigsten Datentypen, Methoden und Parametern, Klassen und Vererbung. Außerdem haben wir für Sie hier wertvolles Tutorial-Material in Form von Videos verlinkt.
Java: Eine der beliebtesten Programmiersprachen
Um den Einstieg in Java zu finden, sollten Sie zunächst einmal die grundlegenden Eigenschaften und die Funktionsweise der beliebten Programmiersprache kennen. Wesentliches Ziel der Programmiersprache, die zu Oracle gehört und in wesentlichen Teilen von C++ beeinflusst wurde, ist die plattformunabhängige Entwicklung. Fünf Kernziele stehen bei Java im Vordergrund:
- Einfachheit
- Robustheit
- Neutralität und Portabilität
- Leistungsfähigkeit
- Parallelisierbarkeit
Der Sprachumfang von Java ist dabei gegenüber noch „komplexeren” Sprachen wie C++ und C# (C-Sharp) reduziert und die Programmiersprache unterstützt keine sogenannte Mehrfachvererbung (mehr dazu später). Insbesondere im Bereich der Web-Entwicklung spielt Java bis heute eine sehr große Rolle und landet im TIOBE-Beliebtheitsranking 2021 auf Platz Zwei hinter C und vor Python.
Das brauchen Sie für den Einstieg in Java
Im Grunde besteht Java aus zwei Komponenten: Der Entwicklungsumgebung (JDK, Java Development Kit) und der Laufzeitumgebung (JRE, Java Runtime Environment). Die Entwicklungsumgebung (JDK) ist dafür zuständig, Ihren Quellcode zu verwalten, ihn auf Fehler zu prüfen und mit Hilfe des enthaltenen Java-Compilers in maschinenlesbaren Code zu überführen.
Die spätere Ausführung Ihres Java-Programms erfolgt dann mit Hilfe der erwähnten Laufzeitumgebung (JRE). Diese ist speziell auf das Betriebssystem zugeschnitten, auf dem die Software später installiert beziehungsweise genutzt wird. Neben Servern, Desktop-Computern und Laptops mit Linux, macOS oder Windows und in Webbrowsern (als JavaScript) kommt Java übrigens sogar in Fahrzeugen und elektronischen Geräten wie HiFi-Anlagen zum Einsatz.
Um loszulegen, brauchen Sie zunächst das oben erwähnte JDK mit dem Java-Editor Eclipse. Die Installation und der Betrieb des JRE hingegen ist später letztlich Sache des Anwenders, das JDK braucht dieser nicht. Natürlich wollen Sie Ihre Software aber im Verlauf des Entwicklungsprozesses testen: Insofern sind Sie im Rahmen der Java-Entwicklung Entwickler und (Test-)Anwender zugleich und sollten beide Komponenten installieren.
Video: YouTube / Obst
Die wichtigsten Java-Bestandteile im Überblick
Wer in Java programmiert, nutzt eine sogenannte objektorientierte Entwicklersprache. Das bedeutet im Gegensatz zu anderen Ansätzen, dass Sie Ihre Software modulweise aufbauen und die zugehörige Logik vor allem dazu dient, diese Module miteinander in Beziehung zu setzen und mit Eigenschaften zu versehen (oder diese auszuwerten). Außerdem arbeiten Sie mit sogenannten Klassen, die ihre Eigenschaften an sogenannte Subklassen vererben können. Die Vorteile liegen zum Einen in besserer Übersichtlichkeit der Programmstruktur, aber auch in der Wiederverwendbarkeit von Modulen auch an anderen Stellen.
Variablen in Java und Typecasting
Ein wesentlicher Bestandteil jeder (höheren) Programmiersprache sind sogenannte Variablen. Diese speichern während der Programmausführung bestimmte Werte und werden miteinander in Beziehung gesetzt. In Java gibt es verschiedene Variablentypen, die Sie zunächst kennen sollten:
- Zahlen: Byte (byte), Short (short), Integer (int), Long (long), Float (float) und Double (double): Je nach Bedarf legen Sie in Java unterschiedliche Variablentypen für Zahlenformate wie Ganzzahlen, Fließkommazahlen oder Kommazahlen an. Diese decken jeweils unterschiedliche Zahlenbereiche und -Arten ab
- Text: Strings (string): Hier handelt es sich um Zeichenketten, beispielsweise Beschriftungen, Meldungen für den Anwender oder Erklärtexte innerhalb Ihrer Software
Mit gewissen Einschränkungen sind die Zahlentypen in Java auch miteinander kompatibel. Durch sogenanntes Typecasting (Typbestimmung) lassen sich beispielsweise aus Double-Variablen (Gleitkommawerte) Integer-Werte (Ganzzahlen) erzeugen.
Video: YouTube / Wissenshäppchen TD
Bedingte Abfragen: Das IF-Konstrukt in Java
Ein wesentlicher Bestandteil jeder Software ist das sogenannte „if-else”-Konstrukt, auch als „Wenn-Dann-Sonst”-Abfrage bekannt. Eine Besonderheit hierbei ist, dass das „if”-Konstrukt in Java sowohl mit „else if”, als auch mit „else” verwendet werden kann:
- Mit „if”, gefolgt von der Bedingung, leiten Sie die Abfrage ein
- Mit „else if” erweitern Sie die Abfrage um einen oder mehrere weitere, mögliche Fälle
- Mit „else” (ohne folgendes „if”) decken Sie (sofern gewünscht) alle weiteren, beliebigen Fälle ab und schließen das „if”-Konstrukt
Alternativ kann eine „if-else”-Abfrage auch als sogenanntes „switch/case”-Konstrukt ausgedrückt werden. Hier ist die Syntax etwas anders. Ein Beispiel für eine solche „if”-Abfrage finden Sie weiter unten.
Wichtige Java-Operatoren im Überblick
Ein sogenannter Operator oder Vergleichsoperator dient dazu, Variablen und Werte miteinander in Beziehung zu setzen. Hier zeigen sich einige Unterschiede in der Java-Syntax und der mathematischen (oder „üblichen”, aus dem Mathematikunterricht bekannten) Schreibweise:
- <, >: Ist der Wert der Variablen kleiner oder größer als der Vergleichswert?
- <=, >=: Ist der Wert kleiner gleich oder größer gleich dem Vergleichswert?
- ==: Ist der Wert gleich dem Vergleichswert?
- !=: Ist der Wert nicht gleich dem Vergleichswert?
- &&: Beide Bedingungen vor und nach dem Operator müssen erfüllt sein
- =: Bestimme den Wert der Variablen wie folgt
- !: Negiere einen Variablenwert
- |: Verknüpfe zwei Werte von Variablen durch „oder” (OR)
- ^: Verknüpfe zwei Werte durch „exklusiv-oder” (XOR)
- ~: Bestimme den Komplementärwert einer Variablen, sofern möglich
- %: Gibt den Rest der Ganzzahldivision von zwei Werten aus
- ++, —: Hier handelt es sich um sogenannte Prä- und Postinkremente, die beispielsweise den Befehl „a = a + 1” mit Hilfe von „a++” oder „++a” abkürzen
Die Java-Syntax
Eventuell haben Sie bereits Erfahrungen mit C, C++ oder Visual Basic .NET gesammelt. Jede dieser Sprachen hat im Hinblick auf den Aufbau und das Aussehen des Programmcodes ihre ganz eigenen Besonderheiten. Das JDK unterstützt Sie hier im enthaltenen Eclipse-Editor unter anderem, indem es die einzelnen Code-Zeilen soweit einrückt (nach rechts versetzt), dass Bestandteile auf derselben Programmierebene dieselbe Einrückung haben.
In Java werden Sie darüber hinaus viel mit runden sowie geschweiften Klammern zu tun haben. Außerdem schließt jeder Befehl am Ende mit einem Semikolon. Kommentare hingegen, die nur für das Verständnis notwendig sind, nicht aber für die Programmfunktionen, werden mit „//” vom Quellcode abgetrennt. Ein Beispiel für Java-Quellcode könnte somit wie folgt aussehen:
int iPhone=12; // Erzeuge eine Integer-Variable „iPhone” und setze ihren Wert auf 12.
if(iPhone <11){
System.out.println(„Sie besitzen ein älteres iPhone“);
}else if(iPhone==11){
System.out.println(„Sie besitzen ein iPhone 11“);
}else if(iPhone==12){
System.out.println(„Sie besitzen ein iPhone 12“);
}else{
System.out.println(„Ihr iPhone ist neuer als das iPhone 12“);
}
Hier fällt auf, dass das sich oben erwähnte „if”-Konstrukt im Bereich der „else”-Abschnitte strukturell wiederholt werden. Auf das Wort „if” folgt in Klammern stets die Bedingung, danach in geschweiften Klammern das, was passieren soll, falls die Bedingung erfüllt oder nicht erfüllt ist.
Video: YouTube / CodingProf
Weitere wichtige Java-Bestandteile: Klassen, Vererbung und Polymorphie
Wenn Sie die oben beschriebenen Java-Bestandteile kennen, haben Sie schon einiges über die Grundlagen der beliebten Programmiersprache gelernt. Doch es gibt noch jede Menge weitere, wichtige Bestandteile, die Ihnen bei der Entwicklungsarbeit gute Dienste leisten werden:
Klassen, Objekte und Schleifen
- Do-While- und For-Schleifen: Führe eine Operation solange durch, bis eine bestimmte Bedingung erfüllt ist
- Verwendung von Klassen: Jedes Objekt in Java gehört einer Klasse an. Diese bestimmen wesentliche Eigenschaften des Objekts durch Vererbung (siehe unten)
- Methoden mit Parametern: Häufig werden Sie die Startwerte Ihrer Methode individuell festlegen wollen. Das geschieht über die sogenannte Parameterübergabe
- Confirm-und-Message-Dialoge: Hierüber lassen sich einfache Benutzereingaben realisieren, die dann zu einem festgelegten Programmverhalten führen
- Try-Catch-Dialoge: Hier kann der Benutzer etwas eingeben und das Programm versucht, die Eingabe zu interpretieren. Gelingt dies nicht, wird eine zuvor festgelegte Fehlermeldung ausgegeben
- Verschachtelte „if”-Abfragen: Wenn-Dann-Abfragen lassen sich auch schachteln, was für so manchen komplexeren Fall notwendig sein kann
Vererbung und Polymorphie
Java arbeitet grundsätzlich mit sogenannten Klassen und Subklassen als deren Untermengen mit jeweils eigenen, individuellen Eigenschaften. Man spricht hier von „geerbten” Eigenschaften. Letztendlich geht es dabei um das Prinzip der Abstraktion: Welche Eigenschaften sind für alle Objekte einer Klasse gleich? Diese werden in der Hauptklasse definiert. Etwaige Besonderheiten wiederum sind ein Fall für die Subklassen. Insgesamt ist es durch dieses Prinzip möglich, jede Menge doppelten Quellcode („Redundanz”) einzusparen und somit eine häufige Fehlerquelle zu eliminieren.
Um das Prinzip der Vererbung zu verstehen, nehmen wir als Beispiel ein aktuelles iPhone. Es gehört offensichtlich zur „Hauptklasse” Smartphones. Jedes Smartphone hat üblicherweise ein Display mit einer bestimmten Größe und Auflösung, sowie einen Prozessor und ein Betriebssystem. Wenn Sie nun ein iPhone in Java darstellen wollen, legen Sie zunächst eine Klasse „Smartphone” an und definieren danach die Klasse „iPhone”, bei dem beispielsweise die Ausprägung „Betriebssystem” immer „iOS” ist. Die Erweiterung einer Klasse geschieht dabei in Java mit Hilfe des „extends”-Befehls:
public class iPhone extends Smartphone {}
Video: YouTube / Studyflix
Durch die sogenannte Polymorphie wiederum (griechisch: „Vielgestaltigkeit”) ist es möglich, dass dieselbe Operation je nach Objekt, auf das sie angewendet wird, ein unterschiedliches Verhalten zeigen kann. Hierzu wird der Typ einer Variable nicht fest zugewiesen, sondern als Schnittstelle definiert und richtet sich nach der Klassenzugehörigkeit des betreffenden Objekts:
Video: YouTube / PanjuTorials
Weitere wichtige Java-Bausteine
- Arrays: Ein Array ist eine Zusammenfassung mehrerer gleichartiger Variablen zu einem sogenannten Feld (englisch: „Array”). Diese können auch mehrdimensional sein
- Zufallsgenerator: Wie die meisten anderen Programmiersprachen auch, verfügt auch Java über einen Zufallsgenerator
- Public/Private-Deklarierung: Um das Prinzip der Objektorientierung zu unterstützen, können und sollten Variablen grundsätzlich als „private”, Methoden hingegen als „public” angelegt werden. Das hat zur Folge, dass derselbe Variablenname in verschiedenen Objekten mehrfach vorkommen kann, Methoden hingegen projektübergreifend aufrufbar sind.
- „Getter und Setter”: Durch Voranstellen von „get” oder „set” lassen sich Objekten Parameter übergeben, oder aus diesen lesen
Außerdem unterstützt Java mathematische Methoden innerhalb der Klasse „Math” wie beispielsweise das Aufrunden mit Math.ceil(11.1); für „12” und noch viele weitere Bausteine, Methoden und Eigenschaften, die Sie als fortgeschrittener Programmierer mit der Zeit vermutlich näher kennen lernen werden.
Welche Vorteile bietet Java aus Ihrer Sicht gegenüber anderen Programmiersprachen und warum möchten Sie Java lernen? Wir freuen uns über Ihren Kommentar.
Kommentare