Sie sind auf Seite 1von 39

Lernziele I

Sie wissen, was man unter einem Algorithmus versteht und


Sie knnen die Begriffe Programmiersprache und Programm
definieren.
Sie kennen die Aufgaben eines Compilers und knnen die
Compilation und die Interpretation von Programmen
unterscheiden.
Sie knnen ein Programm in einer hheren Programmier-
sprache von einem Programm in Maschinensprache
unterscheiden.
Sie knnen beschreiben, wie ein in Java geschriebenes
Pogramm zur Ausfhrung kommt.
Sie knnen den grundstzlichen Aufbau eines Java-
Programms beschreiben.

WS 2015/2016 Programmieren in Java - Grundlagen Folie 1


Prof. Dr. J. Dunker
Lernziele II
Sie wissen, was ein Syntaxfehler ist.
Sie sind in der Lage, ein Java-Programm wie Hello World
mit Hilfe der Entwicklungsumgebung Eclipse zur
Ausfhrung zu bringen.
Sie wissen, wie die Programme javac (Java-Compiler) und
java (Java-Bytecode-Interpreter) in einer Dos-Box zur
Ausfhrung gebracht werden und knnen deren Wirkung
beschreiben.
Sie wissen, dass es in einer Java-Quellcode-Datei nur eine
Klasse mit dem Zugriffsattribut public geben darf und
dass die entsprechende Datei so heien muss, wie diese
ffentliche Klasse (mit der Ergnzung .java).
Sie knnen Text- oder Zahlausgaben mit entsprechenden
Ausgabeanweisungen vornehmen.
WS 2015/2016 Programmieren in Java - Grundlagen Folie 2
Prof. Dr. J. Dunker
Lernziele III
Sie sind in der Lage, eine komplette Java-Entwicklungs-
umgebung bestehend aus dem Java-Development-Kit (JDK
bzw. Java-SDK), der entsprechenden Dokumentation und
Eclipse per Installation bereitzustellen.

WS 2015/2016 Programmieren in Java - Grundlagen Folie 3


Prof. Dr. J. Dunker
Programmierung: Grundstzliches I
Neue Einsatzgebiete, neue Gerte und neue Verfahren
erfordern neue Software.
Unter Programmierung versteht man den gesamten Prozess
der systematischen Erstellung entsprechender Software mit
den Phasen:
Analyse (Was ist das zu lsende Problem?)
Design (Entwicklung eines Lsungskonzeptes)
Implementation (Umsetzung/Codierung des Konzeptes in
einer Programmiersprache)
Test / Abnahme / Pilotierung (Verifikation,
Inbetriebnahme)

WS 2015/2016 Programmieren in Java - Grundlagen Folie 4


Prof. Dr. J. Dunker
Programmierung: Grundstzliches II
Programme lsen Probleme; sie sind in einer
Programmiersprache geschrieben und bestehen aus
Algorithmen.
Ein Algorithmus ist ein Lsungsverfahren, das przise
beschreibt, wie sich gesuchte aus gegebenen Gren Schritt
fr Schritt ermitteln lassen.
Beispiele fr Algorithmen:
Euklidischer Algorithmus zur Bestimmung des grten
gemeinsamen Teilers (ggT) zweier Zahlen.
Algorithmus zur Umwandlung einer Dezimalzahl in eine
Binrzahl.
Algorithmus zur Berechnung der Einkommenssteuer aus
den persnlichen Daten des Steuerpflichtigen.
Algorithmus zur Drehzahlregelung im Auto.
WS 2015/2016 Programmieren in Java - Grundlagen Folie 5
Prof. Dr. J. Dunker
Programmierung: Grundstzliches III
Beispiel: Euklidischer Algorithmus

Eingabe: natrliche Zahlen a, b a b r


15 6
Methode: wiederhole 3
r := a mod b; 6 3
0
a := b;
3 0
b := r;
bis r = 0; a b r
26 5
gib_aus: a; 1
Ausgabe: ggT(a,b) 5 1
0
1 0

WS 2015/2016 Programmieren in Java - Grundlagen Folie 6


Prof. Dr. J. Dunker
Vom Algorithmus zum Programm I
Ein in einer Programmiersprache formulierter Algorithmus
heit Programm.
Ein in einer hheren Programmiersprache wie C oder Java
vorliegendes Programm ist auf einem Rechner nicht direkt
ausfhrbar (dieser versteht nur Maschinensprache);
allerdings lsst dieses sich durch einen automatisierten
bersetzungsprozess in Maschinensprache bersetzen und
sodann zur Ausfhrung bringen.
Von Compilation spricht man, wenn ein Programm in einer
hheren Programmiersprache wie C direkt in
Maschinensprache bersetzt wird.
Die Compilation selbst wird durch ein weiteres Programm
den Compiler vorgenommen.
WS 2015/2016 Programmieren in Java - Grundlagen Folie 7
Prof. Dr. J. Dunker
Vom Algorithmus zum Programm II
Euklid: C-Programm Euklid: Java-Programm
#include <iostream.h> import java.util.Scanner;
void main(){ public class GGT {
long int a, b, r; public static void main(String[] args) {
Scanner in = new Scanner(System.in);
cout << "Bitte die erste Zahl eingeben: "; int a,b,r;
cin >> a; System.out.println("Bitte erste Zahl eingeben: ");
cout << "Bitte die zweite Zahl eingeben: "; a = in.nextInt();
cin >> b; System.out.println("Bitte zweite Zahl eingeben: ");
b = in.nextInt();
do{ do{
r = a % b; r = a % b;
a = b; a = b;
b = r; b = r;
}while ( r != 0); }while (r != 0);
System.out.println("GGT ist:" + a);
cout << "GGT ist: " << a << endl; }
} }

WS 2015/2016 Programmieren in Java - Grundlagen Folie 8


Prof. Dr. J. Dunker
Programmieren in Maschinensprache vs.
Programmieren in einer hheren Programmiersprache
Maschinensprache ist prozessorspezifisch:
Programme in Maschinensprache laufen nur auf dem
Prozessor, fr den sie geschrieben sind.
Hhere Programmiersprachen sind prozessorunabhngig:
Ein in einer hheren Programmiersprache wie C oder Java
geschriebenes Programm ist ohne groe Modifikationen auf
jedem Prozessor bzw. auf jeder Plattform lauffhig, fr die es
einen entsprechenden C-Compiler bzw. Java-Interpreter gibt.
Interpretierte Programme laufen unter der Kontrolle eines so
genannten Interpreters. Bei Java liest der Interpreter
Anweisung fr Anweisung des zuvor ber einen Java-
Compiler erzeugten Bytecodes (s. Folgefolie) und fhrt diese
dann jeweils aus.

WS 2015/2016 Programmieren in Java - Grundlagen Folie 9


Prof. Dr. J. Dunker
bersetzung von C- und Java-Programmen

C-Quellprogramm Java-Quellprogramm

Compiler fr Compiler fr Java-Compiler


Plattform 1 Plattform n

Maschinenprogramm
Maschinenprogramm Maschinenprogramm fr virtuelle Maschine
fr Plattform 1 fr Plattform n
Optimale Ausnutzung des Prozessors Interpreter fr Interpreter fr
Fr jeden Prozessortyp wird ein Plattform 1 Plattform n
anderer Compiler (hufig von
anderem Hersteller) bentigt Prozessor wird nicht optimal ausgenutzt
Da die Compilerhersteller sich unter- Fr jeden Prozessortyp wird ein Java-
scheiden, sind kleinere Programm- Interpreter bentigt; Interpretation
verlangsamt Ausfhrung
anpassungen i.d.R. notwendig, um
Programme auf mehreren bersetzte Programme sind sofort
Plattformen ausfhren zu knnen. plattformbergreifend lauffhig
WS 2015/2016 Programmieren in Java - Grundlagen Folie 10
Prof. Dr. J. Dunker
Traditionell erstes Java-Programm: Hello World

// Ich bin ein Kommentar und gehe bis zum Zeilenende


/**
* Ich bin ein Kommentar,
* der sich sogar ber mehrere Zeilen erstreckt
*/
public class MyFirstHelloWorld { // hier beginnt eine Klassendefinition

public static void main(String[] args) // hier beginnt die Hauptmethode


{ // hier beginnt ein Anweisungsblock
System.out.println("Hello World!"); // hier wird etwas ausgegeben
} // hier endet der Anweisungsblock
// und damit die Hauptmethode
} // hier endet die Klassendefinition

Datei: MyFirstHelloWorld.java
WS 2015/2016 Programmieren in Java - Grundlagen Folie 11
Prof. Dr. J. Dunker
Grundstzlicher Programmaufbau: Kommentare
Kommentare ( /* dies ist ein Kommentar */ )
sind ohne Einfluss auf die Programmausfhrung
dienen lediglich der Erhhung der Lesbarkeit des
Programms
werden mit /* eingeleitet und mit */ abgeschlossen
und knnen sich dann ber mehrere Zeilen erstrecken
/* Kommentarbeginn
....
....
Kommentarende */
werden alternativ mit // eingeleitet und gehen dann
bis zum Zeilenende
// Kommentar ....
Kommentarschachtelung nicht erlaubt ( /* .. /*--*/..
*/)
WS 2015/2016 Programmieren in Java - Grundlagen Folie 12
Prof. Dr. J. Dunker
Grundstzlicher Programmaufbau: Klassen
Java-Programme bestehen aus Klassen was genau Klassen sind,
wird spter beschrieben; zunchst reicht es, zu wissen, dass
eine Klasse gem
public class Klassenname {

}
definiert werden kann und Sie in einer solchen Klasse Daten,
Ablufe und Anweisungen hinterlegen knnen.
eine mit dem Zugriffsattribut public versehene Klasse von allen
anderen Klassen eines Programms benutzt werden kann
in einer Datei auch mehrere Klassen definiert werden knnen
von diesen darf aber nur eine das Zugriffsattribut public
haben
und die Datei muss so heien, wie der Name der public-
Klasse es vorgibt im Beispiel: MyFirstHelloWorld.java
WS 2015/2016 Programmieren in Java - Grundlagen Folie 13
Prof. Dr. J. Dunker
Grundstzlicher Programmaufbau: main-Methode
public static void main(String[] args)
{
System.out.println("Hello World!");
}
Klassen bestehen unter anderem aus Methoden; in einer Methode sind in
der Regel mehrere Anweisungen zusammengefasst, so dass eine Methode
eine bestimmte Teilfunktionalitt realisiert im Beispiel gibt die main-
Methode lediglich etwas aus.
Die main-Methode ist Hauptmethode eines jeden Java-Programms, d.h.
jedes Java-Programm enthlt genau eine Methode mit Namen main.
Die Ausfhrung eines Java-Programms beginnt mit der Ausfhrung der
main-Methode, d.h. der Maschinencode zur main-Methode ist der Code,
der bei Programmstart ausgefhrt bzw. aufgerufen wird
Die in einer Methode hinterlegten Anweisungen werden im
Methodenrumpf zwischen { und } geklammert.
Auf Rckgabewerte (void), Methodenparameter (String[] args) und
Zugriffsattribute gehen wir spter ein.

WS 2015/2016 Programmieren in Java - Grundlagen Folie 14


Prof. Dr. J. Dunker
Grundstzlicher Programmaufbau: Anweisungen
System.out.println("Hello World!");
Anweisungen weisen Aktionen an und sorgen so z.B. dafr,
dass Text ausgegeben wird, eine Formel berechnet wird, ein
Datum eingelesen wird oder eine Methode aufgerufen wird, die
wiederum bestimmte Aktionen ausfhrt.
Anweisungen werden in der Regel mit einem Semikolon ;
abgeschlossen.
Im Beispiel wird die println-Methode des Standardausgabe-
objektes System.out (die Konsole) aufgerufen, die dafr sorgt,
dass die in Klammern bergebene Zeichenkette der so
genannte Methodenparamter - ausgegeben wird; allgemein
werden Methoden nach folgendem Muster aufgerufen:
Objekt.Methodenname(Parameter)

WS 2015/2016 Programmieren in Java - Grundlagen Folie 15


Prof. Dr. J. Dunker
Grundstzlicher Programmaufbau: Sonstiges
Die Java-Syntax legt fest, wie Klassen, Methoden,
Anweisungen usw. notiert und zu Programmen
zusammengesetzt werden; so ist z.B. genau festgelegt, dass
System.out etwas anderes als System.Out ist und eine
Ausgabeanweisung mit einem Semikolon enden muss.
Syntaxverste werden vom Compiler identifiziert und als
Fehler ausgewiesen, die zu korrigieren sind; ein Programm
ist erst ablauffhig, wenn alle Syntaxfehler eliminiert
wurden.
Die Semantik eines Sprachelementes legt fest, wozu es
dient und wie es auf den beteiligten Daten operiert.
Formatierung ist weitgehend Geschmackssache; dennoch
sollten Sie sich an bestimmte Grundregeln halten:
public class MyFirstHelloWorld {public static void main(String[] args) {
System.out.println("Hello World!");}}
ist syntaktisch korrekt, aber sicher nicht bersichtlich.
WS 2015/2016 Programmieren in Java - Grundlagen Folie 16
Prof. Dr. J. Dunker
Entwicklungszyklus aus Programmierersicht
Start Quellcode bearbeiten

Compilieren

ja
Fehler ?

nein
Programm ausfhren

ja nein
Fehler ? Ende

WS 2015/2016 Programmieren in Java - Grundlagen Folie 17


Prof. Dr. J. Dunker
Hello World mit der Eclipse IDE bereitstellen I
Eclipse starten und ein neues Java-Projekt anlegen

WS 2015/2016 Programmieren in Java - Grundlagen Folie 18


Prof. Dr. J. Dunker
Hello World mit der Eclipse IDE bereitstellen II
Projektnamen eintippen und ggf. Optionen wie angegeben
setzen

WS 2015/2016 Programmieren in Java - Grundlagen Folie 19


Prof. Dr. J. Dunker
Hello World mit der Eclipse IDE bereitstellen III
ber File|New|Class eine
neue Java-Klasse erzeugen,
deren Name z.B. so heit, wie
das Projekt auch

WS 2015/2016 Programmieren in Java - Grundlagen Folie 20


Prof. Dr. J. Dunker
Hello World mit der Eclipse IDE bereitstellen IV
In den bereits voreditierten Programmrumpf die
Ausgabeanweisung integrieren

WS 2015/2016 Programmieren in Java - Grundlagen Folie 21


Prof. Dr. J. Dunker
Hello World mit der Eclipse IDE bereitstellen V
Programm sichern und als Java-Applikation laufen lassen

Erzeugte Ausgabe

WS 2015/2016 Programmieren in Java - Grundlagen Folie 22


Prof. Dr. J. Dunker
Ergebnisordner und -dateien
Der beschriebene Prozess hat dazu gefhrt, dass im aktuellen
Arbeitsbereich folgende Verzeichnisse und Dateien erzeugt
wurden:
Ordner MyFirstHelloWorld mit Unterordnern
1. bin
enthlt die Datei MyFirstHelloWorld.class mit dem
interpretierbaren Java-Byte-Code
2. src
enthlt die Datei MyFirstHelloWorld.java mit dem eingetippten
Java-Programm
Bei Klick auf Run|RunAs|JavaApplication wird der Java-
Interpreter aufgerufen unter dessen Kontrolle der erzeugte
Java-Byte-Code dann Befehl fr Befehl ausgefhrt wird.
Die Datei mit dem Java-Byte-Code wird immer dann neu
erzeugt, wenn die .java-Datei gesichert wird.
WS 2015/2016 Programmieren in Java - Grundlagen Folie 23
Prof. Dr. J. Dunker
Java-Interpreter aus der Dos-Box aufrufen
Der Java-Interpreter kann auch von Hand aufgerufen
werden; hierzu
1. ffnet man eine Dos-Box
2. Wechselt in das Verzeichnis mit der Byte-Code-Datei
3. Ruft den Java-Interpreter java wie folgt auf:

Voraussetzung: Das bin-Verzeichnis des Java-SDK muss


sich im Suchpfad des Systems befinden
(Umgebungsvariable Path)

WS 2015/2016 Programmieren in Java - Grundlagen Folie 24


Prof. Dr. J. Dunker
Java-Compiler aus der Dos-Box aufrufen
Der Java-Compiler kann auch von Hand aufgerufen
werden; hierzu
1. ffnet man eine Dos-Box
2. Wechselt in das Verzeichnis mit der Java-Datei
3. Ruft den Compiler
javac wie folgt auf:

Voraussetzung:
s. letzte Folie

WS 2015/2016 Programmieren in Java - Grundlagen Folie 25


Prof. Dr. J. Dunker
Programmerstellungsinstrumente und
Abfolge
Start Editor

*.java //Quelldatei

Compiler
Bibliotheken (javac)
(class-Dateien)
*.class //Bytecode

Java-Interpreter
(virtuelle Maschine; java)

Laufendes Programm

WS 2015/2016 Programmieren in Java - Grundlagen Folie 26


Prof. Dr. J. Dunker
Eine erste Vertiefung: Ausgaben erzeugen I
System.out.println(Argument);
Gibt das Argument (Zahl, Text, Variableninhalte,) aus und erzeugt
am Ende einen Zeilenumbruch. Text und Zahlen knnen durch das +
Zeichen miteinander verbunden werden.
System.out.print(Argument);
Ausgabe wie bei println mit dem Unterschied, dass am Ende kein
Zeilenumbruch generiert wird.
Text (=Zeichenkette) wird immer durch doppelte Hochkommata
geklammert: "Hello World!"
Mchte man innerhalb einer Zeichenkette das doppelte
Hochkomma ausgeben, so ist diesem ein Backslash voranzustellen:
"Ein Hochkomma \" mittendrin"
Backslashes erzeugt man dann mit: "Ein Backslash \\ "
Innerhalb einer Zeichenkette erzeugt \n eine neue Zeile und \t
einen Tabulatorvorschub: "Neue Zeile \n und noch ein \t Tab"

WS 2015/2016 Programmieren in Java - Grundlagen Folie 27


Prof. Dr. J. Dunker
Eine erste Vertiefung: Ausgaben erzeugen II
Wie sieht die zugehrige Ausgabe aus?

WS 2015/2016 Programmieren in Java - Grundlagen Folie 28


Prof. Dr. J. Dunker
Eine erste Vertiefung: Ausgaben erzeugen III

WS 2015/2016 Programmieren in Java - Grundlagen Folie 29


Prof. Dr. J. Dunker
Ein erster Blick nach vorn: Eingabeverarbeitung

WS 2015/2016 Programmieren in Java - Grundlagen Folie 30


Prof. Dr. J. Dunker
Zusammenfassung I
Ein Algorithmus ist ein przise beschriebenes Probleml-
sungsverfahren.
Eine Programmiersprache ist eine Sprache zur Beschreibung
von Algorithmen in einer rechnerverstndlichen Form
Ein Programm ist ein in einer Programmiersprache formulierter
Algorithmus.
Hherer Programmiersprachen stellen mchtige Befehle oder
Anweisungen bereit, die es im Vergleich zur Maschinensprache
leicht machen, Algorithmen zu beschreiben.
Ein Programm in einer hheren Programmiersprache muss
compiliert oder interpretiert werden, damit es zur Ausfhrung
gelangen kann; Compiler bersetzen ein solches Programm
hierzu direkt in Maschinensprache.

WS 2015/2016 Programmieren in Java - Grundlagen Folie 31


Prof. Dr. J. Dunker
Zusammenfassung II
Java-Programme gelangen zur Ausfhrung, indem sie
zunchst durch den Java-Compiler in eine virtuelle
Maschinensprache (Java-Bytecode) bersetzt werden;
ein Java-Interpreter sorgt dann fr die Ausfhrung der
entsprechenden Befehle.
Exemplarisches Hello World-Programm:
public class MyFirstHelloWorld { // hier beginnt eine Klassendefinition

public static void main(String[] args) // hier beginnt die Hauptmethode


{ // hier beginnt ein Anweisungsblock
System.out.println("Hello World!"); // hier wird etwas ausgegeben
} // hier endet der Anweisungsblock
// und damit die Hauptmethode
}

Java-Programme sind erst dann ablauffhig, wenn sie


keine Syntaxfehler mehr enthalten.
WS 2015/2016 Programmieren in Java - Grundlagen Folie 32
Prof. Dr. J. Dunker
Zusammenfassung III
Die .java-Datei muss so heien, wie die einzige in ihr
definierte ffentliche (public) Klasse.
Die korrespondierende .class Datei wird vom Java-
Compiler erzeugt und enthlt den Java-Bytecode.
Mit Hilfe einer Entwicklungsumgebung wie Eclipse lassen
sich Java-Programme komfortabel erstellen, da z.B.
wesentlicher Quellcode schon voreditiert wird
die Programmerstellung durch Codeergnzung
untersttzt wird
Syntaxfehler identifiziert werden
Der Java-Compiler und der Java-Interpreter leicht ber
die Oberflche aufgerufen werden knnen.
WS 2015/2016 Programmieren in Java - Grundlagen Folie 33
Prof. Dr. J. Dunker
Anhang: Installationen - JDK, Java-Doc, Eclipse
Sie finden das Java-Development-Kit (JDK) und die API-
Dokumentation auf der Website von SUN-Microsystems
(www.sun.com) oder aber in meinem
Ressourcenverzeichnis zur Veranstaltung.
Die Entwicklungsumgebung Eclipse finden Sie unter
www.eclipse.org oder aber in meinem
Ressourcenverzeichnis.

WS 2015/2016 Programmieren in Java - Grundlagen Folie 34


Prof. Dr. J. Dunker
Installation: JDK (SE: Standard Edition)

WS 2015/2016 Programmieren in Java - Grundlagen Folie 35


Prof. Dr. J. Dunker
Installation: Java-Dokumentation I
Die Dokumentation des Java-API (Application Programming
Interface) liegt als Zip-Datei vor; installieren Sie die
Dokumentation in das Verzeichnis

C:\Programme\Java\jdk1.5.0_09\

Im dann erzeugten Unterverzeichnis docs knnen Sie ber die


index.html-Datei in die Dokumentation einsteigen.

WS 2015/2016 Programmieren in Java - Grundlagen Folie 36


Prof. Dr. J. Dunker
Installation: Java-Dokumentation II

WS 2015/2016 Programmieren in Java - Grundlagen Folie 37


Prof. Dr. J. Dunker
Installation: Eclipse I
Eclipse liegt ebenfalls als Zip-Datei vor; installieren Sie
Eclipse in das Verzeichnis
C:\Programme
hier wird dann ein Unterverzeichnis eclipse erstellt aus
dem heraus Sie ber Doppelklick auf eclipse.exe Eclipse
dann starten knnen.
Nach Start von Eclipse werden Sie nach einem Workspace
gefragt, also dem Verzeichnis, in welchem Sie in der Folge
Ihre Java-Programme ablegen wollen; Sie knnen das
Verzeichnis z.B. wie folgt whlen:

WS 2015/2016 Programmieren in Java - Grundlagen Folie 38


Prof. Dr. J. Dunker
Installation: Eclipse II
Nach Klick auf Workbench knnen Sie dann ein neues Java-
Projekt erzeugen

WS 2015/2016 Programmieren in Java - Grundlagen Folie 39


Prof. Dr. J. Dunker