Werkzeuge zur Programmentwicklung

Werbung
SWE-15
Werkzeuge zur Programmentwicklung
integrierte
Entwicklungsumgebung
Editor
Quellmodul
(Source)
Bibliothek
Modulschnittstellen
Übersetzer
(Compiler)
vorübersetzte
Module
Testhilfe
(Debugger)
Zielmodul
(Code)
Binder
(Linker)
Eingabe
© 1999 bei Prof. Dr. Uwe Kastens
ausführbares
Programm
Rechner mit
Systemsoftware
Eingabe
Ausgabe
Vorlesung Software-Entwicklung / Folie 15
Ziele:
Vom Programm zur Ausführung
in der Vorlesung:
Aufgaben der Werkzeuge erläutern
nachlesen:
Judy Bishop: Java lernen, 3.Aufl., Abschnitt 1.2
nachlesen:
GdP-11
Übungsaufgaben:
Verständnisfragen:
Warum ist separate Übersetzung sinnvoll?
Ausgabe
SWE-16
Ausführung von Java-Programmen
Editor
Quellmodul
m1.java
JavaÜbersetzer
m2.class
m1.class
m3.class
Java Modulbibliotheken
auf Rechnern am
Internet
Zielmodule
in Java-Bytecode
Internet
Browser
© 1999 bei Prof. Dr. Uwe Kastens
Eingabe
Java-Bytecode
Interpretierer
Ausgabe
Java-Bytecode ist maschinenunabhängig
und wird von einem
Interpretierer-Programm ausgeführt
Vorlesung Software-Entwicklung / Folie 16
Ziele:
Maschinenunabhängigkeit durch Interpretation
in der Vorlesung:
Java Bytecode, abstrakte Maschine, Rolle des Internet erläutern
nachlesen:
Judy Bishop: Java lernen, 3.Aufl., Abschnitt 1.1, 1.2
Übungsaufgaben:
Verständnisfragen:
Welche NEUEN Werkzeuge braucht man, damit Java auf einem neuen Rechnertyp läuft? Vergleichen Sie mit dem
Szenario auf SWE-15 z. B. für C++.
SWE-17
Variable und Zuweisung
Eine Variable ist ein Name im Programm für eine Stelle im Speicher, die einen Wert enthält.
Eine Zuweisung bestimmt oder ändert den Wert einer Variablen.
Eine Deklaration bindet Namen an neue Variable.
Sie können nur Werte des angegebenen Typs aufnehmen.
Die Bindung gilt nur in einem bestimmten Bereich des Programms (Gültigkeitsbereich).
Die Variablen existieren im Speicher nur für eine bestimmte Zeit (Lebensdauer).
Formen von Variablendeklarationen:
Typ
Name;
Typ
Name1, Name2, ...;
int year;
double cDegree, fDegree;
© 1999 bei Prof. Dr. Uwe Kastens
Zuweisungen:
Variable =
cDegree =
fDegree =
cDegree =
Typ
int
Name = Initialwert;
msgNo = 1;
Ausdruck;
10.0;
cDegree * 9 / 5 + 32;
cDegree + 10;
Variable und Zuweisungen sind das Grundprinzip imperativer Sprachen:
Der Programmzustand wird bestimmt durch eine Menge von Variablen mit ihren Werten.
Zuweisungen im Programmablauf verändern den Zustand.
Vorlesung Software-Entwicklung / Folie 17
Ziele:
Variable und Zuweisungen als imperatives Grundprinzip
in der Vorlesung:
• Variable und Deklarationen erläutern
• Rollen von Variablen in Zuweisungen
nachlesen:
Judy Bishop: Java lernen, 3.Aufl., Abschnitt 2.5
nachlesen:
GdP-34
Übungsaufgaben:
Verständnisfragen:
• Geben Sie eine Folge von Zuweisungen an, aus der man eine Zuweisung streichen kann, ohne die Gesamtwirkung zu
ändern. Welche Bedingung muß dafür gelten?
• Welche Rolle haben initialisierte Variable, an die nicht zugewiesen werden darf?
SWE-18
Klassen und Objekte
Eine Klasse definiert gleichartige Objekte mit ihren Datenelementen (Variable)
und Operationen (Methoden) in einer geschlossenen Programmstruktur.
Beispiel:
Klassenname
Variable
Methoden
Konstruktormethode
Circles
x
y
radius
getX ()
getY ()
getRadius ()
move (int,int)
grow (double)
Circles (int,int,double)
© 2001 bei Prof. Dr. Uwe Kastens
3 Objekte der
Klasse Circles:
:Circles
x = 0
y = 0
radius = 1.0
:Circles
x = 1
y = 1
radius = 0.5
Vorlesung Software-Entwicklung / Folie 18
Ziele:
Grundbegriffe zu Klassen verstehen
in der Vorlesung:
Erläuterung der Begriffe
nachlesen:
Judy Bishop: Java lernen, 3.Aufl., Abschnitt 2.3
Übungsaufgaben:
Verständnisfragen:
Was haben die drei Objekte gemeinsam und worin unterscheiden sie sich?
:Circles
x = 10
y = 20
radius = 100.0
SWE-19
Objekte einer Klasse bilden
Objekte werden durch die new-Operation zu einer Klasse gebildet:
new Circles (0, 0, 1.0)
new-Operation führt zum Aufruf der Konstruktormethode.
Die Parameter legen initiale Eigenschaften des Objektes fest.
Das Ergebnis ist eine Objektreferenz (Identität des Objektes).
Sie kann z. B. an eine Variable passenden Typs zugewiesen werden:
Circles unit = new Circles (0, 0, 1.0);
Circles small = new Circles (1, 1, 0.5);
Circles big = new Circles (10, 20, 100.0);
Alle Objekte sind verschieden, d. h. sie haben verschiedene Objektreferenzen.
Das gilt auch, falls die Werte ihrer Objektvariablen gleich sind.
© 1999 bei Prof. Dr. Uwe Kastens
Ein Klassenname wird auch als Typangabe (z. B. Variablendeklarationen) verwendet,
er steht dann für den Typ der Referenzen von Objekten der Klasse.
Objektmethoden werden für ein bestimmtes Objekt aufgerufen.
Sie benutzen dessen Objektvariablen und können sie auch verändern:
big.getRadius()
liefert den radius-Wert des Objektes in der Variablen big
small.move(1,2);
ändert dieKoordinaten des Objektes in der Variablen small
Vorlesung Software-Entwicklung / Folie 19
Ziele:
Den grundlegenden Objektbegriff verstehen
in der Vorlesung:
Erläuterungen zur Konstruktion und zur Identität von Objekten
nachlesen:
Judy Bishop: Java lernen, 3.Aufl., Abschnitt 2.3
Verständnisfragen:
Können 2 Objekte durch Zustandsänderungen gleich werden?
SWE-20
Klassenvariable, Klassenmethoden
Klassenvariable und Klassenmethoden gehören inhaltlich zur Klasse insgesamt.
Sie beziehen sich nicht auf ein spezielles Objekt.
Sie werden über den Klassennamen zugegriffen:
Circles.noOfObjects
Eine Klassenvariable existiert nur einmal pro Klasse - nicht für jedes Objekt.
Eine Klassenmethode greift nicht auf Objektvariable zu!
Klassenvariable und -methoden werden durch static gekennzeichnet.
Beispiel: Anzahl der zur Klasse Circles erzeugten Objekte zählen:
© 1999 bei Prof. Dr. Uwe Kastens
class Circles
{ ...
Circles (int ix, int iy, double ir)
{ noOfCircles = noOfCircles + 1; ... }
static int getCounter ()
{ return noOfCircles; }
private static int noOfCircles = 0;
private int x, y; double radius;
}
Vorlesung Software-Entwicklung / Folie 20
Ziele:
Unterscheiden Methoden und Variablen zu Objekten und zur Klasse
in der Vorlesung:
Erläuterungen am Beispiel der Klasse Circles
nachlesen:
Judy Bishop: Java lernen, 3.Aufl., Abschnitt 2.3
Übungsaufgaben:
Verständnisfragen:
Geben Sie weitere Beispiele für Klassen- und Objektvariablen bzw. -methoden an.
Konstruktor
Klassenmethode
Klassenvariable
Objektvariable
SWE-21
Begriffe zur Struktur objektorientierter Programme
Programm
besteht aus
Klassen
besteht aus
Elemente
members
sind
Datenelemente (Variable)
fields
Methoden
Konstruktor
sind
sind
Klassenvariable
Objektvariable
Objektmethoden
haben
© 1999 bei Prof. Dr. Uwe Kastens
Klassenmethoden
ohne
Ergebnis
sind
mit
besteht aus
Typ
Parameter
(Variable)
lokale
Variable
Vorlesung Software-Entwicklung / Folie 21
Ziele:
Begriffe einprägen und präzise verwenden
in der Vorlesung:
Erläuterungen dazu
nachlesen:
Judy Bishop: Java lernen, 3.Aufl., Abschnitt 2.2
Anweisungen
statements
SWE-22
Einfache Ausgabe
Klassen in vordefinierten Standardbibliotheken machen einfache Ausgabefunktionen verfügbar:
class System
{ ...
static PrintStream out;
static InputStream in;
...
}
class PrintStream
{ ...
void print (String s) {...}
void println (String s) {...}
void println () {...}
...
}
Einfache Aufrufe von Ausgabefunktionen mit String-Objekten als Parameter:
© 1999 bei Prof. Dr. Uwe Kastens
System.out.println
System.out.println
System.out.println
System.out.println
("Welcome to Java");
("Welcome " + "to " + "Java");
("Die Gesamtnote ist " + gesamtNote);
();
String ist eine vordefinierte Klasse für Zeichenreihen als Datentyp mit Operationen darauf.
String-Literale: z. B. "Welcome to Java"
Der Operator + konkateniert zwei String-Objekte.
Operanden von Grundtypen (z. B. int) werden dazu in String-Objekte konvertiert.
Vorlesung Software-Entwicklung / Folie 22
Ziele:
Einfache Ausgabefunktionen kennenlernen
in der Vorlesung:
Erläuterungen dazu
nachlesen:
Judy Bishop: Java lernen, 3.Aufl., Abschnitt 2.4
Übungsaufgaben:
Tabellen drucken
Herunterladen