Einführung in die Programmierung mit Java

Werbung
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Einführung in die
Programmierung mit
Java
2
Ziele
ƒ Begriffsbildungen: Informatik, Algorithmus, Programm ...
ƒ Warum Java als Programmiersprache verwenden?
ƒ Ein einfaches Java-Programm erstellen, übersetzen und ausführen
ƒ Gut dokumentierte Java-Programme erstellen können
Martin Wirsing
in Zusammenarbeit mit
Michael Barth, Philipp Meier und Gefei Zhang
WS04/05
M. Wirsing: Einführung in die Programmierung mit Java
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Informatik
Informatik
ist ein Kunstwort,
das in den 60-ziger Jahren in Frankreich kreiert wurde,
entstanden aus
Information + Mathematik
englisch: Computer Science
neuerdings auch: Informatics
bedeutet
Wissenschaft der maschinengestützten Informationsverarbeitung
M. Wirsing: Einführung in die Programmierung mit Java
3
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Teilgebiete der Informatik
Praktische Informatik
• Programmierung und Software-Entwicklung
• Datenbanksysteme
• Betriebssysteme und Middleware
Technische Informatik
• Rechenanlagen und Rechnernetze (Hardware)
Theoretische Informatik
• Formale Modelle und Semantik
• Algorithmen und Komplexität
Informatik und Gesellschaft
• Auswirkungen der Informatik auf die Gesellschaft
(Rationalisierung, Automatisierung, Datensicherheit, ...)
M. Wirsing: Einführung in die Programmierung mit Java
4
5
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Algorithmen und Programme
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
6
Programme und Software-Entwicklung
Algorithmus (nach Al-Khowarizmi, um 800)
Programm
• Allgemeines Verfahren zur Lösung einer Klasse von Problemen,
das durch eine eindeutige Vorschrift so genau festgelegt ist,
dass man es anwenden kann, ohne es verstanden zu haben.
• Eigenschaften:
• Jeder Einzelschritt ist eindeutig festgelegt und berechenbar.
• Das Verfahren liefert nach endlich vielen Schritten eine Lösung.
• Beispiele:
• Modellbau: Montageanleitung
• Informatik: Sortieralgorithmus
• Beschreibung von Datenstrukturen und Algorithmen
in einer Programmiersprache
Software-Entwicklung
• Systematische Konstruktion von Programmen zur Lösung
eines in der realen Welt gestellten Problems
Programm
• Beschreibung von Datenstrukturen und Algorithmen
in einer Programmiersprache
M. Wirsing: Einführung in die Programmierung mit Java
M. Wirsing: Einführung in die Programmierung mit Java
7
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Entwicklung objektorientierter Programmiersprachen
1960
Algol 60
Pascal
1980
Modula 2
Java
ƒ Entwickelt von J. Gosling, u.a.
Simula 67
1970
ƒ Erste plattform-unabhängige OO-Sprache, insbesondere
zur Programmierung von Internet-Applikationen
C
Eiffel
ƒ Erste Version 1.0 1995, heute Java 1.4. (neu jetzt 1.5. aber nicht in Vorlesung)
Smalltalk
ƒ Ursprünglicher Name: OAK.
C++
1990
8
Modula3, Oberon
Java
2003
M. Wirsing: Einführung in die Programmierung mit Java
Java 1.4
M. Wirsing: Einführung in die Programmierung mit Java
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
9
Aspekte von Java
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
10
Grober Aufbau eines Java-Programms
ƒ Objektorientiert: Klassenkonzept, strenge Typisierung
ƒ Java-Programm besteht aus Menge von Klassen
ƒ Unabhängig von Plattform: Durch Übersetzung in Virtuelle Maschine (JVM)
ƒ Eine Klasse besteht aus
ƒ Netzwerkfähig, nebenläufig
ƒ Attributen („fields“): Beschreiben Zustand eines Objekts
ƒ Sicherheitskonzept
ƒ Methoden: Beschreiben die Operationen, die ein Objekt
ausführen kann
ƒ 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
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
M. Wirsing: Einführung in die Programmierung mit Java
11
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Einfaches imperatives Java-Programm
ƒ Ein imperatives Java-Programm besteht aus
ƒ Klassendeklaration mit einer
Beispiel: Hallo
public class Hallo
{
public static void main(String[] args)
ƒ einzigen Methode namens “main”:
{
System.out.println(„Hallo!“);
public class <KlassenName>
}
{
public static void main(String[] args)
}
{
<Anweisungen>
}
}
M. Wirsing: Einführung in die Programmierung mit Java
M. Wirsing: Einführung in die Programmierung mit Java
12
13
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
14
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Methodenaufruf
Konventionen
ƒ Methodenaufruf allgemein:
ƒ Klassennamen beginnen mit großen Buchstaben
object.methodName(parameters);
Bsp. Hallo
ƒ Methodennamen und Variablennamen beginnen mit kleinen Buchstaben
Bsp. println, out
ƒ Beispiel:
ƒ Konstantennamen bestehen NUR aus großen Buchstaben.
System.out.println(„Hallo!“);
Bsp. BLUE
ƒ 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
M. Wirsing: Einführung in die Programmierung mit Java
15
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
16
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Übersetzung und Ausführung von JavaProgrammen
Übersetzung und Ausführung von JavaProgrammen
Übersetzung in Bytecode
ƒ Aus einer Textdatei mit Endung „.java“ erzeugt der Compiler javac eine
ƒ Die Datei mit dem Bytecode wird der JVM übergeben und von der JVM
ausgeführt (d.h. interpretiert).
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
M. Wirsing: Einführung in die Programmierung mit Java
Bytecode als
Datei Hallo.class
Hallo.class
...
Bytecode als
Datei Hallo.class
Java Virtual Machine
java.exe
M. Wirsing: Einführung in die Programmierung mit Java
Ergebnisausgabe (von
Hallo auf Bildschirm)
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
17
Übersetzung und Ausführung von Hallo.java
(unter Windows)
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Kommentare in Java
„The view that documentation is something that is added to a program after it
has been commissioned seems to be
Übersetzung von Hallo.java:
wrong in principle, and counterproductive in practice.
C: > javac Hallo.java
Instead, documentation must be regarded as an integral part of the process of
design and coding. „
Interpretation von Hallo.class:
C. A. R. Hoare:
C: > java Hallo
Hints on Programming Language Design (1973)
Gibt auf Bildschirm zurück:
ƒ
Hallo!
M. Wirsing: Einführung in die Programmierung mit Java
M. Wirsing: Einführung in die Programmierung mit Java
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
19
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Darstellungen für Kommentare in Java
ƒ
Durch
Die Klasse Hallo dokumentiert
/**
// bla, bla}
Diese Klasse dient nur zum Anzeigen des Strings "Hallo,
wird eine Zeile oder ein Rest einer Zeile zum Kommentar.
Welt!„ auf den Bildschirm
*/
ƒ
18
Zur Erzeugung von Kommentaren zu Klassen und Methoden werden
public class HalloDoc
die Klammern
{
/**
und
/**
Die Methode main druckt "Hallo, Welt!„
*/
*/
verwendet.
public static void main (String[] args)
Solche Kommentare werden in den mit dem Befehl javadoc erzeugten
{
Report mit aufgenommen.
}
System.out.println("Hallo, Welt!");
}
M. Wirsing: Einführung in die Programmierung mit Java
M. Wirsing: Einführung in die Programmierung mit Java
20
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
21
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Erzeugung der Dokumentation
ƒ
22
Spezielle Variablen bei javadoc
Mit dem Befehl
javadoc HalloDoc.java
ƒ
@see
für Verweise
ƒ
@author
für Namen des Autors
wird automatisch eine Beschreibung der Klasse HalloDoc erzeugt und in
ƒ
@version
für die Version
die Datei
ƒ
@param
für die Methodenparameter
HalloDoc.html
geschrieben.
M. Wirsing: Einführung in die Programmierung mit Java
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
M. Wirsing: Einführung in die Programmierung mit Java
23
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Die Klasse Square ausführlich dokumentiert
/** Diese Klasse dient zur Berechnung des Quadrats.
@author Martin Wirsing
@version 1.1
Eine Testklasse für Square
/**
Diese Klasse dient nur zum Test von Square
*/
public class Programm
{
*/
/** Die Methode main druckt einen Testfall von square
*/
public class Square
public static void main (String[] args)
{
{
/**
Diese Methode dient nur zur Illustration der
Parameterbehandlung durch javadoc.
System.out.println("Das Quadrat von "
@param value ist ein formaler Parameter vom Typ int
+ wert + " ist " + square(wert));
@return das Quadrat von value
*/
int wert = 17;
}
}
public static int square (int value)
{ return value*value; }
}
M. Wirsing: Einführung in die Programmierung mit Java
M. Wirsing: Einführung in die Programmierung mit Java
24
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
25
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Erzeugung der Dokumentation
ƒ
26
Zusammenfassung
Mit dem Befehlen
ƒ Geschichte:
javadoc Square.java
ƒ Objektorientierte Programmiersprachen seit 1967: Simula
javadoc Programm.java
ƒ OO-Programmierung populär seit Ende der 80er Jahre mit Smalltalk
werden automatisch Beschreibungen der Klassen Programm und Square
erzeugt und in die Dateien
und C++.
ƒ Heute vor allem C++ und Java; neuerdings auch C#
Square.html und Programm.html
ƒ Java
geschrieben.
ƒ 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
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
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,
M. Wirsing: Einführung in die Programmierung mit Java
27
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Literaturhinweise
C. Horstmann. Computing Concepts with Java Essentials.
3rd Edition, Wiley, 2003.
H.-P. Gumm, M. Sommer: Einführung in die Informatik.
6. Auflage, Oldenbourg-Verlag, 2004.
K. Arnold, J. Gosling. The Java Programming Language.
Addison-Wesley, 1996.
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
M. Wirsing: Einführung in die Programmierung mit Java
28
Herunterladen