Sie sind auf Seite 1von 74

Java - Einfhrung in die Programmiersprache

Leibniz Universitt IT Services | Anja Aue

Handbcher am RRZN

Programmierung.
Java: Grundlagen und Einfhrung
Java: Fortgeschrittene Techniken und APIs
Java und XML

Java - Einfhrung | 06.05.15

Seite 2

Bcher zur Programmiersprache Java


Dirk Louis & Peter Mller: Java. Der umfassende
Programmierkurs
Michael Kofler: Java. Der Grundkurs
Hans-Peter Habelitz: Programmieren lernen mit Java
Gregor Kuhlmann: Programmieren mit Java: Eine strukturierte
Einfhrung.
Kai Gnster: Einfhrung in Java: Ideal fr Studium und
Ausbildung

Java - Einfhrung | 06.05.15

Seite 3

Bcher zu Java und NetBeans


Joel Murach, Michael Urban: Murach's beginning Java with
NetBeans
Geertjan Wielenga: Beginning NetBeans IDE

Java - Einfhrung | 06.05.15

Seite 4

Bcher zu Java 7 im Internet


Krger, Hansen: Handbuch der Java-Programmierung.
Download der 7. Auflage unter http://www.javabuch.de.
Christian Ullenboom: Java ist auch eine Insel. Im Internet:
http://openbook.rheinwerk-verlag.de/javainsel/.
Christian Ullenboom: Java 7 - Mehr als eine Insel. Im Internet:
Im Internet: http://openbook.rheinwerk-verlag.de/java7/.

Java - Einfhrung | 06.05.15

Seite 5

Tutorials im Web

http://docs.oracle.com/javase/tutorial/
http://www.gailer-net.de/tutorials/java/
http://www4.fh-swf.de/media/java.pdf
https://www.youtube.com/channel/UCB6E_RGh9necQ5YOcIkpag/playlists
https://www.uni-trier.de/fileadmin/urt/doku/java/v70/Java7.pdf
http://www2.in.tum.de/~seidl/Courses/WS2011/info1/folien.pdf
https://www.itm.uni-luebeck.de/teaching/ws2012/prog/
http://www.java-tutorial.org/
http://www.vogella.com/java.html

Java - Einfhrung | 06.05.15

Seite 6

Code-Beispiele / bungen im Web


http://www.javabeginners.de/
http://schuelerlabor.informatik.rwthaachen.de/sites/default/files/materialien/Java-Programmierung
%20-%20Leitprogramm.pdf
http://www.programmieraufgaben.ch/
http://www2.inf.fh-bonn-rheinsieg.de/~sweil2m/Tutorium/Tutorium1.pdf

Java - Einfhrung | 06.05.15

Seite 7

Java-Technologie
Programmiersprache Java.
Java-Plattform bestehend aus einer Laufzeitumgebung (Java
Runtime Environment) und den Standard-Klassenbibliotheken.

Java - Einfhrung | 06.05.15

Seite 8

Programmiersprache Java
Anlehnung an die Syntax der Programmiersprache C++.
Objektorientierte Programmiersprache. Daten und die
dazugehrigen Aktionen werden in ein Objekt
zusammengefasst.
Datenkapselung. Ein direkter Zugriff auf die Daten von auen
ist nicht mglich.
Speichervergabe und -freigabe erfolgt ber das Laufzeitsystem.
Implementierung einer Fehlerbehandlung (Expection-Handling).

Java - Einfhrung | 06.05.15

Seite 9

Java-Plattform
Plattformunabhngig. Eine Ausfhrung auf den
unterschiedlichsten Betriebssystemen ist mglich.
Java Runtime Environment. Laufzeitumgebung fr JavaProgramme.

Java - Einfhrung | 06.05.15

Seite 10

Anwendungsgebiete
Internet-Applikationen fr den Server.
Java-Applet.
Entwicklung von Apps fr Android.

Java - Einfhrung | 06.05.15

Seite 11

Architektur
Texteditor / IDE

Quellcode

Compiler javac
(Java Development Kit )

Bytecode

Java Virtual Machine


(Java Runtime Environment )
Maschinencode

Windows; Linux
Java - Einfhrung | 06.05.15

Seite 12

Java Runtime Environment (JRE)


Java API. Standard-Klassenbibliotheken.
Java Virtual Machine (JVM). Interpreter in der
Laufzeitumgebung fr den Java-Bytecode.
Java-Compiler Hotspot. Zur Laufzeit wird der Bytecode in
Maschinencode umgesetzt.
Speichermanagement des Java-Programms. Speicherfreigabe
durch den Garbage Collector.

Java - Einfhrung | 06.05.15

Seite 13

Klassenbibliotheken
Standard Edition (Java SE). Mathematische Berechnungen.
Arbeiten mit Datums- und Zeitangaben.Lesen und Schreiben
von Dateien und vieles mehr.
Micro Edition (Java ME). Bibliotheken fr Mobiltelefone. In der
Version 1.3 eingefroren.
Enterprise Edition (Java EE). Erweiterte Java SE.
Kommunikation in verteilten Systemen. Arbeiten mit
relationalen Datenbanken.
Informationen zu den Bibliotheken:
http://www.oracle.com/technetwork/java/api-141528.html.

Java - Einfhrung | 06.05.15

Seite 14

Implementierungen
Oracle Java Development Kit (JDK):
http://www.oracle.com/technetwork/java/
javase/ downloads/index.html in der Version 8.
OpenJDK: http://openjdk.java.net/ in der Version 7 als
OpenSource.

Java - Einfhrung | 06.05.15

Seite 15

Entwicklungsumgebungen (IDE)
Grafische Oberflche zur Entwicklung eines Programms.
Arbeitsumgebung zur Programmierung.
Bndlung von einer Laufzeitumgebung und eines Texteditors
fr eine oder mehrere Programmiersprachen.
Prfung des geschriebenen Codes auf Syntaxfehler.

Java - Einfhrung | 06.05.15

Seite 16

Liste von IDEs im Netz


https://blog.idrsolutions.com/2015/03/the-top-11-free-ide-forjava-coding-development-programming/
http://www.java-tutorial.org/ide.html

Java - Einfhrung | 06.05.15

Seite 17

BlueJ

Entwicklung fr den Anfnger in der Programmierung.


Start an der Monash University in Melbourne, Australien.
Freie Software.
Download unter http://www.bluej.org/.

Java - Einfhrung | 06.05.15

Seite 18

IntelliJ IDEA
Entwicklung des tschechischen Softwarehauses JetBrains.
Die Community Edition ist frei.
Als weitere Programmiersprachen werden PHP und JavaScript
untersttzt.
Zustzlich zu den Java-APIs ist die Android API implementiert.
Download unter http://www.jetbrains.com/idea/

Java - Einfhrung | 06.05.15

Seite 19

Eclipse
OpenSource.
2001 Grndung des Eclipse Projects durch IBM. 2004
Grndung der Eclipse Foundation zur Weiterentwicklung von
Eclipse.
Erweiterbarkeit durch PlugIns.
Als weitere Programmiersprachen werden C /C++, PHP und
JavaScript untersttzt.
Zustzlich zu den Java-APIs ist die Android API implementiert.
Download unter http://www.eclipse.org/.

Java - Einfhrung | 06.05.15

Seite 20

Oracle JDeveloper
Seit 2005 frei verfgbar.
Einbindung in die Software-Palette von Oracle.
Sammlung von Oracle-Werkzeugen in einer IDE.
Erweiterbarkeit durch PlugIns.
Als weitere Programmiersprachen wird JavaScript und PHP
untersttzt.
Download unter http://www.oracle.com/technetwork/developertools/jdev/overview/index-094652.html/.

Java - Einfhrung | 06.05.15

Seite 21

NetBeans ...
1996 entwickelt von Studenten aus der Tschechischen
Republik. 1999 bernahme durch Sun Microsystems. 2010
bernahme durch Oracle.
Als weitere Programmiersprachen werden C /C++, PHP und
JavaScript untersttzt..
Download unter https://netbeans.org/.

Java - Einfhrung | 06.05.15

Seite 22

Start von NetBeans


Klick auf das Icon auf dem Desktop.
Start Alle Programme NetBeans NetBeans IDE.

Java - Einfhrung | 06.05.15

Seite 23

Startseite

Java - Einfhrung | 06.05.15

Seite 24

IDE anpassen
Tools Options.

Java - Einfhrung | 06.05.15

Seite 25

Mglichkeiten
Die Symbole am oberen Rand stellen die verschiedenen
Kategorien dar.
General. Einstellungen fr die Programmierung im Web.
Editor. Automatische Ergnzung von Schlsselwrtern etc.
Einstellung von Einrckungen im Codefenster.
Fonts & Color. Welche Schriftart und -farbe wird im
Codefenster genutzt?
Keymap. Welche Shortcuts werden genutzt?
Java. Einstellungen zum Debugger etc.

Java - Einfhrung | 06.05.15

Seite 26

Einstellungen fr den Editor

Java - Einfhrung | 06.05.15

Seite 27

Projekt anlegen
File New Project.

Java - Einfhrung | 06.05.15

Seite 28

1. Schritt: Auswahl einer Projektkategorie


Categories Java. Projects Java Application.
Das Grundgerst fr eine Java-Anwendung wird automatisiert
erstellt.

Java - Einfhrung | 06.05.15

Seite 29

2. Schritt: Name und Speicherort des Projekts

Java - Einfhrung | 06.05.15

Seite 30

Projekt schlieen
File Close Project (ProjectName).

Java - Einfhrung | 06.05.15

Seite 31

Benutzeroberflche

Java - Einfhrung | 06.05.15

Seite 32

Aufbau der IDE


In der Titelleiste wird der Name des Projekts angezeigt.
Menleiste.
Symbolleiste fr die wichtigsten Befehle. Mit Hilfe von View
Toolbar knnen Symbolleisten ein- oder ausgeblendet werden.
Diverse Fenster fr den Code und Informationen zu dem
Projekt.

Java - Einfhrung | 06.05.15

Seite 33

Fenster in der IDE


Mit Hilfe von Drag & Drop kann ein
Fenstern unterhalb der Symbolleiste
positioniert werden.
Mit Hilfe der Schaltflche in der rechten
oberen Ecke wird ein Fenster
minimiert. Die Registerkarte werden am
linken Rand der IDE angezeigt.
Fenster bndeln mit Hilfe von
Registerkarten die verschiedenen
Informationen. Ein Fenster besitzt
mindestens eine Registerkarte.

Java - Einfhrung | 06.05.15

Seite 34

Registerkarten in einem Fenster


Am oberen Rand der Registerkarte
wird der Name und die SchlieenSchaltflche angezeigt
Mit Hilfe von Drag & Drop kann eine
Registerkarte von einem Fenster in ein
anderes Fenster verschoben werden.
Mit Hilfe des Mens Window knnen
die verschiedenen Registerkarten
geffnet werden.

Java - Einfhrung | 06.05.15

Seite 35

Ordner ffnen oder schlieen


Klick auf das Pluszeichen: Ein Ordner
wird geffnet. Der Inhalt wird
angezeigt.
Klick auf das Minuszeichen: Ein Ordner
wird geschlossen.

Java - Einfhrung | 06.05.15

Seite 36

Projekt-Explorer
Die Registerkarte Projects zeigt die
Struktur der Projekte an.
Im Ordner Source Packages befindet
sich der Programmcode. In diesem
Ordner werden die Quelldateien
(*.java) in verschiedenen Paketen
abgelegt. Die Pakete stellen
Unterordner des Ordners Source
Packages dar.
Im Ordner Libraries werden die
Bibliotheken zu dem Projekt
angezeigt. Standardmig ist die
JDK-Bibliothek vorhanden.

Java - Einfhrung | 06.05.15

Seite 37

File-Explorer
Die Registerkarte Files zeigt die
Dateistruktur des gewhlten Projektes
an.
Im Ordner src befindet sich der
Programmcode.
Das JAR-Archiv (das kompilierte
Projekt) wird im Ordner build
abgelegt.

Java - Einfhrung | 06.05.15

Seite 38

Navigator
Strukturierte Darstellung des Codes.
Auflistung von Methoden und Felder in dem Quellcode.

Java - Einfhrung | 06.05.15

Seite 39

Codefenster
Die, im Projekt-Explorer
ausgewhlte Java-Datei wird
angezeigt.
Schlsselwrter in Java
werden standardmig mit
blauer Schrift gekennzeichnet.
Kommentare werden in grauer
Schrift dargestellt.
Benutzerdefinierte Bezeichner
werden mit schwarzer Schrift
gekennzeichnet.

Java - Einfhrung | 06.05.15

Seite 40

Schriftart und -farbe im Codefenster


Tools Options. Fonts & Colors.

Java - Einfhrung | 06.05.15

Seite 41

Erstellung einer Konsolen-Anwendung


Arbeiten mit der Konsole.
Die MS Eingabeaufforderung wird unter dem Betriebssystem
als Konsole genutzt. Durch den Befehl cmd kann die Konsole
gestartet werden.
Nutzung fr serverseitige Anwendungen.

Java - Einfhrung | 06.05.15

Seite 42

Grundgerst in NetBeans
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package de.grundgerst;
/**
*
* @author NotebookBenutzer
*/
public class DeGrundgerst {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
}
}
Java - Einfhrung | 06.05.15

Seite 43

Kommentare
/*
* To change this license header, choose License Headers in Project
Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author NotebookBenutzer
*/
Java - Einfhrung | 06.05.15

Seite 44

Licence Header
Lizenzierung von eigenen Bibliotheken zur Weiterverwendung.
Der Kommentar kann ber die Eigenschaften des Projekts
verndert werden.

Java - Einfhrung | 06.05.15

Seite 45

Javadoc-Kommentare ...

beginnen mit /** und enden mit */.


dienen der Dokumentation von Programmcode.
werden vom Compiler und Interpreter berlesen.
knnen Tags wie @autor enthalten.

Java - Einfhrung | 06.05.15

Seite 46

Einzeilige Kommentare ...


beginnen mit // und enden automatisch mit der Zeile.
werden genutzt, um die nachfolgende Zeile kurz zu
beschreiben.

Java - Einfhrung | 06.05.15

Seite 47

Anweisungen in Java
package de.grundgerst;

Jede Anweisung endet mit einem Semikolon.


Das Semikolon beendet ein Schritt innerhalb eines Prozess.
Der Schritt wird in einer bestimmten Programmiersprache
beschrieben.
Pro Zeile sollte ein Arbeitsschritt beschrieben werden.

Java - Einfhrung | 06.05.15

Seite 48

Packages
package de.grundgerst;

Die definierten Klassen werden zu einem Paket verschnrt.


Die Definition des Packages muss die erste Zeile in einem
Java-Programm sein.
Packages bilden hnlich wie ein Verzeichnisbaum fr Dateien
eine hierarchische Struktur ab.
Der Name eines Packages entspricht dem Speicherort der
java-Datei. In diesem Beispiel liegen alle Codedateien zu dem
Projekt in dem Pfad src/de/grundgerst.

Java - Einfhrung | 06.05.15

Seite 49

Hinweise
Der Name sollte nur aus Buchstaben von A..Z oder a..z, den
Zahlen 0..9 und dem Unterstrich zusammengesetzt werden.
Mit Hilfe des Punktes werden die Namen hierarchisch
geordnet. Der Punkt wird als Pfad-Trennzeichen genutzt.
Fr Packages wird hufig die umgekehrte Domain-NamenSchreibweise genutzt.

Java - Einfhrung | 06.05.15

Seite 50

Klassen ...
public class DeGrundgerst {
}
bestehen aus dem Klassenkopf public class DeGrundgerst.
haben einen Klassenrumpf, der durch die geschweiften
Klammern begrenzt wird.
sind Vorlagen fr ein Objekt.
Jedes Java-Programm hat mindestens eine Klasse.

Java - Einfhrung | 06.05.15

Seite 51

Klassenkopf
public class DeGrundgerst {
}
public regelt den Zugriff auf die Klasse. Auf diese Klasse kann
von auen zugegriffen werden.
Das Schlsselwort class kennzeichnet eine Klasse in Java.
DEGrundgerst ist der Name der Klasse. Der Name ist frei
whlbar.

Java - Einfhrung | 06.05.15

Seite 52

Methode main
public static void main(String[] args) {
// TODO code application logic here
}
Startpunkt eines Java-Programms.
Methodenkopf: public static void main(String[] args). Der
Methodenkopf muss exakt so deklariert werden.
Der Methodenrumpf beginnt und endet mit den geschweiften
Klammern. Der Rumpf enthlt Code, der fr den Start des
Programmes bentigt wird.

Java - Einfhrung | 06.05.15

Seite 53

Methodenkopf
public static void main(String[] args) {
// TODO code application logic here
}
[Zugriff][Instanz][Rckgabe][Name]([paraList])
public regelt den Zugriff auf die Methode. Die Methode kann
auerhalb der Klasse aufgerufen werden.
main ist der Methodennamen.
Das Schlsselwort static kennzeichnet eine Methode die direkt
an der Klasse aufgerufen werden kann. Von der Klasse muss
kein Objekt erzeugt werden, um diese Klasse aufzurufen.

Java - Einfhrung | 06.05.15

Seite 54

Parameter fr die Methode


public static void main(String[] args) {
// TODO code application logic here
}
In den runden Klammern werden Startwerte fr eine Methode
angegeben.
Der Methode werden Parameter bergeben.
Der Methode main wird eine Feld von Strings bergeben. Das
Feld ist beliebig lang.

Java - Einfhrung | 06.05.15

Seite 55

Rckgabewert einer Methode


public static void main(String[] args) {
// TODO code application logic here
}
Der Typ void wird fr den Rckgabewert angegeben.
Die Funktion gibt keinen Wert an den Aufrufer zurckgibt.

Java - Einfhrung | 06.05.15

Seite 56

Eingabe von Code


Mit einem Mausklick wird die Einfgemarke gesetzt. In diesem
Beispiel wird die Einfgemarke in den Methodenrumpf der
Methode main gesetzt.
An der Einfgemarke wird mit Hilfe der Tastatur der Code
System.out.println("Hallo"); eingegeben.

Java - Einfhrung | 06.05.15

Seite 57

Beispiel
public static void main(String[] args) {
// TODO code application logic here
System.out.println("Hallo");
}
Mit Hilfe der Methode println() wird eine Zeile auf der Konsole
ausgegeben.
Der Methode wird der auszugebende Text in runden Klammern
bergeben. Der Text selber wird durch die Anfhrungszeichen
begrenzt.
Die Methode ist in der Klasse System.out definiert.

Java - Einfhrung | 06.05.15

Seite 58

Projekte kompilieren und starten


<F6>.
Run Project (grner Pfeil) in der Symbolleiste.
Run Run Project.

Java - Einfhrung | 06.05.15

Seite 59

Projekte kompilieren
<F11>.
Klick mit der rechten Maustaste auf das Projekt. Build.
Run Build Project.

Java - Einfhrung | 06.05.15

Seite 60

Kompilierte Dateien entfernen und neu kompilieren


<UMSCHALT>+<F11>.
Klick mit der rechten Maustaste auf das Projekt. Clean and
Build.
Run Clean and Build Project.

Java - Einfhrung | 06.05.15

Seite 61

Ausgabe

Anzeige von Fehlern.


Simulation der Konsole.

Java - Einfhrung | 06.05.15

Seite 62

Kompilierung

Quellcode (*.java)

Compiler

Bytecode (*.class / *.jar)


Java - Einfhrung | 06.05.15

Seite 63

Compiler (javac)
berprfung des Codes auf Korrektheit.
bersetzung von lesbaren Code in ein ausfhrbares Format.
Syntax-Prfung.

Java - Einfhrung | 06.05.15

Seite 64

Syntaxfehler in NetBeans

Java - Einfhrung | 06.05.15

Seite 65

Ausfhrung

Virtuelle Java Machine


(Java VM)

Bytecode (*.class / .jar)

Class Loader
Bytecode Verifier
Garbage Collection
Interpreter / JIT-Compiler

Java API

Java - Einfhrung | 06.05.15

Betriebssystem
Seite 66

Java Virtual Machine (JVM)


Simulation eines bestimmten Betriebssystem.
Schnittstelle zwischen dem Java-Bytecode und dem
ausfhrenden Rechner.
Interpretiert den Bytecode und fhrt das Java-Programm aus.
Auslsung von Exceptions bei Laufzeitfehlern.

Java - Einfhrung | 06.05.15

Seite 67

Garbage Collection
Verwaltung von Objekten.
In Java wird jedes Objekt referenziert. Falls auf ein Objekt
keine Referenz mehr vorhanden ist, wird das Objekt
automatisch entfernt.

Java - Einfhrung | 06.05.15

Seite 68

Class Loader und Verifier


Der Class Loader ldt den Bytecode sowie die bentigten
Klassen von berall her.
Der Verifier liest den Code und berprft diesen auf
Typsicherheit und Korrektheit. Beim Auftreten von Fehlern wird
der Code nicht ausgefhrt.

Java - Einfhrung | 06.05.15

Seite 69

JIT-Compiler
bersetzung von Bytecode in Maschinencode des jeweiligen
Betriebssystems zur Laufzeit.
Vorteil: Beschleunigung von Programmen bei der Ausfhrung.

Java - Einfhrung | 06.05.15

Seite 70

Konsole in NetBeans

Fenster Output meist am unteren rechten Rand der IDE.


Sobald die Anwendung luft und etwas auf die Konsole
ausgibt, wird das Fenster automatisch geffnet.

Java - Einfhrung | 06.05.15

Seite 71

Einstellungen zum Projekt


Rechtsklick auf den Projektnamen. Men Properties.

Java - Einfhrung | 06.05.15

Seite 72

Ordner Sources
Men Properties Sources.
Welche Java-Version wird genutzt?
Welche Zeichencodierung wird genutzt?

Java - Einfhrung | 06.05.15

Seite 73

Mehrere Projekte im Projekt-Explorer


Durch einen Klick auf den
Projektnamen wird ein Projekt
aktiviert. Das aktive Projekt wird
kompiliert und gestartet.
Mit einem rechten Mausklick auf
einen Projekttyp das Kontextmen
zu dem Projekt geffnet.
File Close Project schliet das
aktive Projekt.
Mit Hilfe des Befehls Delete im
Kontextmen eines Projektes wird
das aktive Projekt gelscht.

Java - Einfhrung | 06.05.15

Seite 74