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
3
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Informatik
4
Teilgebiete der Informatik
Praktische Informatik
Informatik
• Programmierung und Software-Entwicklung
• Datenbanksysteme
• Betriebssysteme und Middleware
ist ein Kunstwort,
das in den 60-ziger Jahren in Frankreich kreiert wurde,
Technische Informatik
entstanden aus
Information + Mathematik
• Rechenanlagen und Rechnernetze (Hardware)
Theoretische Informatik
englisch: Computer Science
neuerdings auch: Informatics
• Formale Modelle und Semantik
• Algorithmen und Komplexität
bedeutet
Wissenschaft der maschinengestützten Informationsverarbeitung
Informatik und Gesellschaft
• Auswirkungen der Informatik auf die Gesellschaft
(Rationalisierung, Automatisierung, Datensicherheit, ...)
M. Wirsing: Einführung in die Programmierung mit Java
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Algorithmen und Programme
M. Wirsing: Einführung in die Programmierung mit Java
5
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
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
6
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
ƒ Erste plattform-unabhängige OO-Sprache, insbesondere
Pascal
zur Programmierung von Internet-Applikationen
C
1980
Java
ƒ Entwickelt von J. Gosling, u.a.
Simula 67
1970
8
Modula 2
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
Modula3, Oberon
Java
2003
Java 1.4
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
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
ƒ Die Datei mit dem Bytecode wird der JVM übergeben und von der JVM
ƒ Aus einer Textdatei mit Endung „.java“ erzeugt der Compiler javac eine
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
Hallo.class
...
...
Compiler javac.exe
Bytecode als
Datei Hallo.class
Bytecode als
Datei Hallo.class
M. Wirsing: Einführung in die Programmierung mit Java
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Übersetzung und Ausführung von Hallo.java
(unter Windows)
Übersetzung von Hallo.java:
C: > javac Hallo.java
Interpretation von Hallo.class:
Hallo!
M. Wirsing: Einführung in die Programmierung mit Java
Ergebnisausgabe (von
Hallo auf Bildschirm)
M. Wirsing: Einführung in die Programmierung mit Java
17
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
18
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:
C: > java Hallo
Gibt auf Bildschirm zurück:
Java Virtual Machine
java.exe
Hints on Programming Language Design (1973)
ƒ
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
ƒ
20
Die Klasse Hallo dokumentiert
Durch
/**
// 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
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
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
M. Wirsing: Einführung in die Programmierung mit Java
21
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 04/05
Erzeugung der Dokumentation
Spezielle Variablen bei javadoc
Mit dem Befehl
ƒ
@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
ƒ
22
javadoc HalloDoc.java
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