Einführung in die Programmierung mit Java

Werbung
Einführung in die
Programmierung mit
Java
Martin Wirsing
in Zusammenarbeit mit
Matthias Hölzl, Piotr Kosiuczenko, Dirk Pattinson
08/04/03
2
Informatik II, SS 03
Ziele
ƒ Geschichte der OO-Programmiersprachen
ƒ Warum Java als Programmiersprache verwenden?
ƒ Ein einfaches Java-Programm erstellen, übersetzen und ausführen
ƒ Gut dokumentierte Java-Programme erstellen können
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
1
3
Informatik II, SS 03
Entwicklung objektorientierter Programmiersprachen
1960
Algol 60
Simula 67
1970
Pascal
C
1980
Modula 2
Eiffel
Smalltalk
C++
1990
Modula3, Oberon
Java
2003
Java 1.4
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
4
Informatik II, SS 03
Java
ƒ Entwickelt von J. Gosling, u.a.
ƒ Erste plattform-unabhängige OO-Sprache, insbesondere
zur Programmierung von Internet-Applikationen
ƒ Erste Version 1.0 1995, heute Java 1.4.
ƒ Ursprünglicher Name: OAK.
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
2
5
Informatik II, SS 03
Aspekte von Java
ƒ Objektorientiert: Klassenkonzept, strenge Typisierung
ƒ Unabhängig von Plattform: Durch Übersetzung in Virtuelle Maschine (JVM)
ƒ Netzwerkfähig, nebenläufig
ƒ Sicherheitskonzept
ƒ Nachteile: Laufzeithandicap durch Interpretation der JVM
(aber z.T. ausgeglichen durch Just-in-Time Übersetzung)
ƒ Vorteile:
ƒ Verteilte Anwendungen, Web-Anwendungen
ƒ Rechnerunabhängigkeit von Graphikanwendungen
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
Informatik II, SS 03
6
Grober Aufbau eines Java-Programms
ƒ Java-Programm besteht aus Menge von Klassen
ƒ Eine Klasse besteht aus
ƒ Attributen („fields“): Beschreiben Zustand eines Objekts
ƒ Methoden: Beschreiben die Operationen, die ein Objekt
ausführen kann
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
3
7
Informatik II, SS 03
Einfaches imperatives Java-Programm
ƒ Ein imperatives Java-Programm besteht aus
ƒ Klassendeklaration mit einer
ƒ einzigen Methode namens “main”:
public class <KlassenName>
{
public static void main(String[] args)
{
<Anweisungen>
}
}
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
8
Informatik II, SS 03
Beispiel: Hallo
public class Hallo
{
public static void main(String[] args)
{
System.out.println(„Hallo!“);
}
}
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
4
9
Informatik II, SS 03
Methodenaufruf
ƒ Methodenaufruf allgemein:
object.methodName(parameters);
ƒ Beispiel:
System.out.println(„Hallo!“);
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
10
Informatik II, SS 03
Konventionen
ƒ Klassennamen beginnen mit großen Buchstaben
Bsp. Klasse Hallo
ƒ Methodennamen und Variablennamen beginnen mit kleinen Buchstaben
Bsp. println, out
ƒ Konstantennamen bestehen nur aus großen Buchstaben.
Bsp.
ƒ Zusammengesetzte Namen werden zusammengeschrieben,
jeder (innere) Teilname beginnt mit einem großen Buchstaben
Bsp. Klasse HalloWelt, Methoden getName, getMyObject
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
5
11
Informatik II, SS 03
Übersetzung und Ausführung von JavaProgrammen
Übersetzung in Bytecode
ƒ Aus einer Textdatei mit Endung „.java“ erzeugt der Compiler javac eine
Datei mit gleichem Namen, aber Endung „.class“
ƒ Diese enthält den Bytecode für die JVM
Hallo.java
Hallo.class
public class Hallo
{...
}
Quellprogramm als
Textdatei Hallo.java
...
Compiler javac.exe
Bytecode als
Datei Hallo.class
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
12
Informatik II, SS 03
Übersetzung und Ausführung von JavaProgrammen
ƒ Die Datei mit dem Bytecode wird der JVM übergeben und von der JVM
ausgeführt (d.h. interpretiert).
Hallo.class
...
Bytecode als
Datei Hallo.class
Java Virtual Machine
java.exe
Ergebnisausgabe (von
Hallo auf Bildschirm)
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
6
13
Informatik II, SS 03
Übersetzung und Ausführung von Hallo.java
(unter Windows)
Übersetzung von Hallo.java:
C: > javac Hallo.java
Interpretation von Hallo.class:
C: > java Hallo
Gibt auf Bildschirm zurück:
Hallo!
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
14
Informatik II, SS 03
Kommentare in Java
„The view that documentation is something that is added to a program after it
has been commissioned seems to be
wrong in principle, and counterproductive in practice.
Instead, documentation must be regarded as an integral part of the process of
design and coding. „
C. A. R. Hoare:
Hints on Programming Language Design (1973)
ƒ
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
7
15
Informatik II, SS 03
Darstellungen für Kommentare in Java
Durch
ƒ
// bla, bla}
wird eine Zeile oder ein Rest einer Zeile zum Kommentar.
Zur Erzeugung von Kommentaren zu Klassen und Methoden werden
ƒ
die Klammern
/**
und
*/
verwendet.
Solche Kommentare werden in den mit dem Befehl javadoc erzeugten
Report mit aufgenommen.
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
16
Informatik II, SS 03
Die Klasse Hallo dokumentiert
/**
Diese Klasse dient nur zum Ausdrucken des Strings "Hallo,
Welt!„ auf den Bildschirm
*/
public class HalloDoc
{
/**
Die Methode main druckt …
*/
public static void main (String[] args)
{
System.out.println("Hallo, Welt!");
}
}
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
8
17
Informatik II, SS 03
Erzeugung der Dokumentation
ƒ
Mit dem Befehl
javadoc Hallo.java
wird automatisch eine Beschreibung der Klasse Hallo erzeugt und in die
Datei
Hallo.html
geschrieben.
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
18
Informatik II, SS 03
Spezielle Variablen bei javadoc
ƒ
@see
für Verweise
ƒ
@author
für Namen des Autors
ƒ
@version
für die Version
ƒ
@param
für die Methodenparameter
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
9
19
Informatik II, SS 03
Hallo Welt Applet - erweitert dokumentiert
/** Diese Klasse ist die Applet-Version von Hallo zur
Demonstration von javadoc.
@see java.applet.Applet
@author Martin Wirsing
@version 1.1
*/
public class HalloApplet extends Applet
{
/**
Diese Methode dient nur zur Illustration der
Parameterbehandlung durch javadoc.
@param value ist ein Eingabeparameter
*/
public void m (int value) {
...
}
}
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
20
Informatik II, SS 03
Zusammenfassung
ƒ Geschichte:
ƒ Objektorientierte Programmiersprachen seit 1967: Simula
ƒ OO-Programmierung populär seit Ende der 80er Jahre mit Smalltalk
und C++.
ƒ Heute vor allem C++ und Java
ƒ Java
ƒ OO-Programmiersprache,
ƒ vor allem zur Programmierung im Internet eingesetzt
ƒ Java ist plattformunabhängig, interpretierend, unterstützt
Sicherheitskonzepte und besitzt eine reichhaltige Klassenbibliothek
(API, engl. "Application Programming Interface").
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
10
21
Informatik II, SS 03
Zusammenfassung (2)
ƒ Ein Java-Programm besteht aus einer oder mehreren Klassen.
ƒ Klassen enthalten Attribute und die Definitionen von Methoden.
ƒ Eine Methode besteht aus einer Sequenz von Anweisungen,
die den Berechnungsablauf festlegen.
ƒ Jede selbstablaufende Java-Anwendung enthält eine Methode „main“.
ƒ Ein Java-Programm wird mit einem Übersetzer in Byte-Code übersetzt,
der dann mit einem Interpreter, der JVM , ausgeführt wird.
ƒ Java-Programme sollten gut dokumentiert werden.
Mit javadoc kann automatisch eine übersichtliche Dokumentation
erzeugt werden.
M. Wirsing: Einführung in die Programmierung mit Java 08/04/03
11
Herunterladen