Java Tutorial für Einsteiger (Teil 2)
Teil 2 des Java-Tutorials: Kernelemente von Java
Zu Teil 3 des Java-Tutorials: Ablaufsteuerung in Java
Zu Teil 4 des Java-Tutorials: Überblick Objektorientierung in Java
Für den Zugriff auf die Kapitel 5 - 20 müssen Sie sich zunächst registrieren.
Kernelemente der Programmiersprache Java
Ein Java-Programm ist zunächst einmal eine Reihe von Anweisungen, die dem Computer vorgeben, was zu tun ist. Der Prozessor arbeitet diese Anweisungen dann der Reihe nach ab. Nachdem die letzte Anweisung ausgeführt wurde, terminiert das Java-Programm (d.h. das Programm wird beendet).
Viele der Anweisungen zielen darauf ab, Variablen zu verändern. Eine Variable ist einfach eine Speichereinheit, die irgend einen Wert enthalten kann, z.B. eine Zahl oder eine Zeichenkette (also ein Wort oder einen Satz). Eine Veränderung an einer Variablen könnte z.B. bedeuten, dass man zu einer Zahl eine andere hinzu addiert oder an eine Zeichenkette eine andere Zeichenkette anhängt.
Wir schreiben zunächst nur Programme, die auf der sogenannten Konsole bzw. Kommandozeile ausgeführt werden. Bei Windows-Rechnern ist dies die Eingabeaufforderung. Programme, die auf der Konsole ausgeführt werden, können dort Text ausgeben.
Wir werden uns im Rahmen dieses Tutorials einige der Kernelemente eines Java-Programmes mal an einem einfachen Beispiel ansehen:
int summand1 = 5;
int summand2 = 10;
int summe = summand1 + summand2;
System.out.println(summe);
Anm: Die gezeigten Anweisungen sind so für sich genommen noch kein komplettes, ausführbares Java-Programm, dazu fehlt noch der Klassenrahmen. Doch dazu kommen wir in diesem Tutorial später noch.
Den Zweck dieses Java-Programmes können Sie vielleicht auch ohne Programmierkenntnisse bzw. ohne das ganze Tutorial durchgearbeitet zu haben schon erkennen: es sollen zwei Zahlen addiert werden und die Summe über die Kommandozeile an den Programmbenutzer ausgegeben werden. Das Programm besteht aus 4 Anweisungen, pro Zeile schreibt man in der Regel eine Anweisung und schließt diese mit Semikolon (;) ab. Das ist übrigens in vielen Programmiersprachen so.
Die erste Anweisung nennen wir eine Variablendeklaration mit gleichzeitiger Zuweisung. Es wird hierbei eine neue Variable angelegt, dieser geben wir den Namen summand1
. Den Namen können wir beliebig wählen, bis auf einige Einschränkungen, die bei der Namenswahl zu beachten sind, z.B. dass der Name mit einem Buchstaben beginnen muss. Um ein Java-Programm verständlich zu halten, sollte man möglichst immer sinnvolle Namen wählen. Man sollte nach Möglichkeit am Namen einer Variable ablesen kann, was ihr Zweck ist.
Variablen in Java haben immer einen festgelegten Typ: der Typ gibt an, um was für eine Art von Variable es sich handelt. Im Beispiel verwenden wir den Typ int
für die Variable summand1
. Das steht für Integer und bedeutet Ganzzahl. In der Variable summand1
können nun also ganzzahlige Werte gespeichert werden, nicht aber z.B. Kommazahlen wie 2,5.
Andere wichtige Datentypen, die einem in Java sehr oft begegnen werden, sind double
, float
(in diesen Typen können Kommazahlen gespeichert werden, die beiden Typen unterscheiden sich lediglich in Genauigkeit und Wertebereich) und String
für Zeichenketten. Wir werden diese später noch kennen lernen.
Im Beispiel wird bei der Variablendeklaration der Variable schon direkt ein Wert zugewiesen. Das hätte man auch später noch machen können, z.B.
int summand1;
summand1 = 5;
Allgemein lautet die Syntax für die Deklaration einer Variable
TYP VARIABLENNAME;
und die Syntax für die Wertzuweisung
VARIABLENNAME = ;
Doch was bedeutet <AUSDRUCK> an dieser Stelle? Nun, bei einer Wertzuweisung muss nicht immer ein konkreter Wert angegeben werden, so wie das bei unserem Beispiel in diesem Tutorial in der ersten und zweiten Zeile der Fall ist, sondern man kann auch einen komplexen Ausdruck angeben, dessen konkreter Wert dann bei der Zuweisung automatisch berechnet wird. Das geschieht z.B. in der dritten Zeile unseres Tutorial-Beispiels:
int summe = summand1 + summand2;
Es wird wiederum eine Variable vom Typ „int“ angelegt. Dieser Variable wird nun nicht direkt ein Wert zugewiesen, sondern es wird der Ausdruck summand1 + summand2 angegeben. Wenn der Prozessor beim Programmablauf an diese Stelle kommt, wird er diesen Ausdruck dann auswerten. D.h. in diesem Fall, er wird bestimmen, welcher Wert in der Variable summand1 gespeichert ist, er wird bestimmen, welcher Wert in der Variable summand2 gespeichert ist und dann die Summe aus diesen Werten bilden. Dieser Wert wird dann der neu angelegten Variable summe zugewiesen. Da in den beiden Variablen summand1 und summand2 die Werte 5 und 10 gespeichert sind, wird die Variable summe also den Wert 15 enthalten.
Programmieren lernen für Dummies
Lesen Sie hier das erste Kapitel kostenlos!
Die vierte Zeile unterscheidet sich deutlich von den vorherigen Zeilen, denn hier wird keine Variable angelegt. Sondern es wird eine Funktion aufgerufen. Java besitzt eine gewisse „Grundfunktionalität“, die wir jederzeit einsetzen können, gewissermaßen eine Bibliothek von wichtigen Funktionen, die oft benötigt werden. In diesem Fall ist das eine Funktion, die etwas auf der Kommandozeile ausgeben kann.
Die Syntax für einen Funktionsaufruf (bzw. korrekt heißt das eigentlich Methodenaufruf) ist in Java die folgende:
OBJEKT.METHODENNAME();
Von Objekten hatten wir zu Beginn des Tutorials bereits kurz gesprochen, als wir über die Objektorientierung sprachen. Wir wollen an dieser Stelle des Tutorials die Besprechung der Objekte noch nicht zu sehr vertiefen, jedoch ist es wichtig zu wissen, dass in Java Funktionsaufrufe immer an konkrete Objekte gekoppelt sind. Um das mal an einem Beispiel aus der echten Welt zu veranschaulichen: Unser Objekt könnte ein Herd sein und der Herd hätte eine Methode kochen
. Beim Aufruf dieser Methode müsste man als Parameter das Objekt übergeben, das gekocht werden soll. In Java-Syntax sähe das dann so aus:
meinHerd.kochen(meinFruehstuecksEi);
p>Dieser Aufruf würde also bewirken, dass vom Objekt meinHerd
die Methode kochen
mit dem Parameter meinFruehstuecksEi
aufgerufen wird. Oder auf gut deutsch: Mein Frühstücksei wird auf meinem Herd gekocht.
Doch zurück zu unserem echten Java-Programmbeispiel. In der vierten Zeile finden wir also diesen Methodenaufruf:
System.out.println(summe);
Der Funktionsaufruf findet demnach auf einem Objekt System.out
statt. Dieses Objekt gehört gewissermaßen zur Grundausstattung von Java, wir müssen es nicht anlegen, es ist einfach da. Das Objekt stellt einige Funktionalität zur Ausgabe von Informationen auf der Kommandozeile bereit.
Eine der Methoden, die dieses Objekt besitzt, ist demnach die Methode println
. Der Aufruf dieser Methode bewirkt, dass der Inhalt der übergebenen Variablen auf der Kommandozeile ausgegeben wird und nach der Ausgabe ein Zeilenumbruch eingefügt wird. In diesem Fall wird also der Inhalt der Variablen summe
(15) ausgegeben.
Die einzig sichtbare Aktion, die das Programm ausführt, wenn wir es starten, ist die Ausgabe des Ergebnisses der Summation. Die anderen Aktionen (das Anlegen der Variablen und die Berechnung der Summe) finden lediglich intern statt und wir bekommen davon nichts mit.
Programmieren mit Java - Einige unserer Empfehlungen
Das Java-Programmbeispiel ausführbar machen
Um das Beispielprogramm, das wir in diesem Tutorial gerade kennen gelernt haben, ausführbar zu machen, müssen wir einen Klassenrahmen hinzufügen. Wir wollen an dieser Stelle die Frage, was eine Klasse ist, noch nicht weiter vertiefen, sondern müssen nur wissen, dass in Java jeglicher Code innerhalb von Klassen gekapselt werden muss. Daher benötigen wir eine erste Klasse, um unseren Code auszuführen.
In Java muss jede öffentliche Klasse in einer eigenen Datei gespeichert werden, dabei ist durch den Namen, den man der Klasse gibt, der Name der Datei vorbestimmt, nämlich KLASSENNAME.java. Wenn wir nun unserem Beispielprogramm einen Klassenrahmen mit der Klasse MeineTestanwendung
hinzufügen, muss der gesamte Code in der Datei MeineTestanwendung.java
gespeichert werden. Und der Klassenrahmen für unser Java-Programm sieht dann ganz konkret so aus:
public class MeineTestanwendung
{
public static void main(String[] args)
{
int summand1 = 5;
int summand2 = 10;
int summe = summand1 + summand2;
System.out.println(summe);
}
}
Hierbei wird eine Klasse MeineTestanwendung
angelegt. Einziger Sinn dieser Klasse ist es, einen Ausführungsrahmen für unser Programm bereit zu stellen. Die Klasse besteht nun nur aus einer einzigen Methode, nämlich der Hauptmethode. Die Hauptmethode wird vom Java-Interpreter aufgerufen, wenn ein Java-Programm ausgeführt wird. Um ein Java-Programm ausführbar zu machen muss es also in mindestens einer Klasse eine Hauptmethode geben. Die Hauptmethode muss immer main
genannt werden.
Den restlichen Teil der Methodendefinition (also die Wörter public
, static
, void
und den Ausdruck String[]
args) können Sie an dieser Stelle erstmal noch ignorieren, darauf kommen wir später zu sprechen. An dieser Stelle im Tutorial geht es nur darum, das Java-Programm ausführbar zu machen.
Nützlich ist es an dieser Stelle, die Bedeutung der geschweiften Klammern ({ und }) zu kennen. Mit geschweiften Klammern fasst man zusammenhängende Blöcke zusammen, also jeweils ein Klammerpaar für einen zusammenhängenden Block, wobei ein Block mit einer öffnenden Klammer beginnt und mit einer schließenden endet. Im obigen Beispiel fasst zum Beispiel die erste öffnende Klammer (in der zweiten Zeile) und die letzte schließende Klammer (in der letzten Zeile) die Klasse MeineTestanwendung
zusammen. Alles was innerhalb dieser Klammern steht, gehört zu dieser Klasse. Ebenso verhält es sich mit der definierten Methode main
: auch diese wird wiederum durch eine öffnende und eine schließende Klammer begrenzt.
Programmieren mit Java - Einige unserer Empfehlungen
Sie können diese Codezeilen nun schon in einer Datei „MeineTestanwendung.java“ speichern und können diese Datei dann mit dem Java-Compiler übersetzen und danach das Programm ausführen. Wenn Sie das über die Kommandozeile machen, geht das folgendermaßen:
javac MeineTestanwendung.java java MeineTestanwendung
„javac“ ruft also den Compiler auf, der den Quelltext in den Zwischencode, den Bytecode übersetzt. Der Bytecode wird dann in einer Datei MeineTestanwendung.class gespeichert. Diese Datei können Sie nun mit Hilfe des Java Interpreters „java“ ausführen, wobei Sie darauf achten müssen, dass Sie die Dateiendung auslassen, also nur den Klassennamen angeben.
Komfortabler ist es übrigens, wenn Sie das mit einer Entwicklungsumgebung wie Eclipse machen.
Programmieren mit Java - Einige unserer Empfehlungen
Programm in Eclipse erstellen und ausführen
Alle Programmierbeispiele in diesem Tutorial können Sie von unserer Website herunter laden und direkt in Eclipse importieren und dort ausführen. Sie brauchen die Codebeispiele also nicht selbst abzutippen. In Kapitel 20 finden Sie den Download-Link sowie eine Anleitung, wie der Import zu bewerkstelligen ist.
(Für den Zugriff auf den Code-Download müssen Sie sich registrieren.)
Einmalig wollen wir an dieser Stelle jedoch auch besprechen, wie Sie ein eigenes Projekt direkt in Eclipse erstellen können. Wählen Sie im Eclipse Menü „File“ → „New“ → „Java Project“. Im sich öffnenden Assistenten geben Sie als Projektnamen „testprojekt“ an. Alle anderen Voreinstellungen können Sie belassen und klicken nun unten auf „Finish“.
Jetzt können Sie das neu angelegte Testprojekt im Package Explorer sehen. Erweitern Sie die Ansicht und führen einen Rechtsklick auf den Ordner „src“ aus. Nun wählen Sie „New“ → „Class“. Im sich nun öffnenden Assistenten geben Sie als Klassennamen MeineTestanwendung an. Im Bereich „Which method stubs would you like to create?“ aktivieren Sie die erste Option „public static void main(String[] args)“. Danach klicken Sie auf „Finish“.
Wie sie sehen, wurde nun eine Klasse MeineTestanwendung
erzeugt und automatisch im Editor-Fenster geöffnet. Auch die Hauptmethode main()
, die wir im vorherigen Abschnitt besprochen haben, ist bereits vorhanden. Erweitern Sie die Hauptmethode nun durch eine einfache Ausgabe-Routine, z.B.
public static void main(String[] args) {
System.out.println("Hallo Welt!");
}
(Die automatisch generierte Zeile, die mit „// TODO“ beginnt können Sie einfach löschen. ) Nun haben Sie ein erstes einfaches Programm mit Eclipse erstellt, das Sie direkt ausführen können. In der Toolbar von Eclipse (unterhalb des Menüs) sehen Sie ein Symbol, das aus einem grünen Kreis mit einem weißen, nach rechts zeigenden Pfeil besteht. Rechts neben dem Symbol finden Sie einen nach unten zeigenden schwarzen Pfeil, mit dem Sie ein Kontext-Menü öffnen können. Aus diesem Kontext-Menü wählen Sie „Run As“ → „Java Application“. Das Programm wird nun ausgeführt.
Im unteren Teil der Arbeitsfläche öffnet sich ein Fenster „Console“, hier werden alle Ausgaben die ein Programm macht (also wenn Sie im Code System.out.println()
verwenden) angezeigt. Sie sollten dort also jetzt die Ausgabe Hallo Welt! sehen.
Übungen
Beginnend mit dem zweiten Kapitel haben wir Übungsaufgaben für jedes in diesem Tutorial behandelte Thema erstellt. Programmieren lernt man am besten, indem man tatsächlich auch selbst etwas programmiert („Learning by Doing“). Die Übungen sind so aufgebaut, dass Sie jeweils die neu gelernten Konzepte selbst anwenden müssen.
Wir empfehlen, dass Sie sich jeweils nach der Lektüre eines Kapitels an den Übungen, die für dieses Kapitel erstellt wurden, versuchen. Möglicherweise kommen Sie nicht bei allen Übungen ohne Hilfe auf die Lösung. Das ist nicht schlimm, versuchen Sie dennoch bei jeder Übung, zunächst selbst eine Lösung zu finden bevor Sie sich unsere Beispiellösungen ansehen.
In Kapitel 20 erhalten Sie Zugriff auf die Übungen für alle vorhergehenden Kapitel. (Hinweis: Für den Zugriff auf die Übungen müssen Sie sich zunächst registrieren.)
Weiter geht es in Teil 3 des Tutorials mit Bedingungen und Schleifen.
Teil 2 des Java-Tutorials: Kernelemente von Java
Zu Teil 3 des Java-Tutorials: Ablaufsteuerung in Java
Zu Teil 4 des Java-Tutorials: Überblick Objektorientierung in Java
Für den Zugriff auf die Kapitel 5 - 20 müssen Sie sich zunächst registrieren.
Eine ausführliche Liste unserer Buchempfehlungen für Java finden Sie hier.
Java-Tutorial Kapitel:
1. Grundlagen: Compiler und Entwicklungsumgebung2. Kernelemente: Variablen und Ausdrücke
3. Ablaufsteuerung in Java
4. Überblick Objektorientierung
5. Primitive Datentypen
6. Ausdrücke und Operatoren
7. Arrays in Java
8. Zeichenketten
9. Klassen und Objekte
10. Referenzen und Parameter
11. Vererbung in Java
12. Exceptions
13. Generics
14. Collections
15. Dateiverarbeitung in Java
16. Nebenläufigkeit
17. Netzwerkprogrammierung
18. Grafische Oberflächen (GUIs)
19. Java-Webtipps
20. Code-Download und Übungen
Für den Zugriff auf die Kapitel 5 - 20 ist eine Registrierung notwendig.
Einloggen
Wenn Sie noch kein Benutzerkonto bei programmierenlernen24.de haben, müssen Sie sich zunächst registrieren, um vollen Zugriff auf unser Java-Tutorial zu bekommen.
Passwort vergessen? Lassen Sie sich hier ein neues zusenden.
Unsere Buchempfehlungen
Oder sehen Sie sich die vollständige Liste der Empfehlungen für Java an.Wir haben auch eine Empfehlung für einen Java-Fernkurs parat.