Computeranwendung und Programmierung (CuP)

Werbung
Computeranwendung und
Programmierung (CuP)
VO: Peter Auer (Informationstechnologie)
UE: Norbert Seifter (Angewandet Mathematik)
Organisatorisches
(Vorlesung)
• Vorlesungszeiten
– Montag 11:15 – 12:45
– Freitag 12:15 – 13:00 (Fragestunde/
Ersatztermin)
• Unterlagen
– Kurzskriptum, erhältlich in den Übungen
– Barnes & Kölling: Java lernen mit BlueJ.
– Web-Seite:
• Programmbeispiele, Folien, Übungsblätter,
Software, Merkblätter.
04.10.2013
CuP - VO
2
Organisatorisches
(Übungen)
• Aufgeteilt in 16 Gruppen
– Hilbertraum (Hauptgebäude)
– Computerraum IL+IT (RWZ)
• „Repetitorium zu Computeranwendung
und Programmierung“
– Tutoren
– Freies Üben (Eulerraum im TTZ)
• Alles weitere erfahren Sie in den
Übungen.
04.10.2013
CuP - VO
3
Inhalt der Lehrveranstaltung
• Objektorientiertes Programmieren
in Java
– Objekte, Klassen, Interaktion zwischen
Objekten
– Bedingte Anweisungen und Schleifen
– Arbeiten mit Listen
04.10.2013
CuP - VO
4
Beispiel eines 1. KNW (a)
Schreiben Sie eine Klasse Buch mit dem
Konstruktor
public Buch(String
String autor, String titel,
String isbn, int anzahlSeiten,
boolean istTaschenbuch,
String sprache) .
istTaschenbuch hat den Wert true,
true wenn das
Buch ein Taschenbuch ist, und ansonsten
den Wert false.
false
04.10.2013
CuP - VO
5
Beispiel eines 1. KNW (b)
Schreiben Sie weiters eine Klasse
Buecherverzeichnis mit dem Konstruktor
public Buecherverzeichnis() ,
der ein leeres Bücherverzeichnis erzeugt.
04.10.2013
CuP - VO
6
Beispiel eines 1. KNW (c)
Implementieren Sie in der Klasse
Buecherverzeichnis auch die folgenden Methoden:
public void addBuch(Buch einBuch)
fügt einBuch dem Bücherverzeichnis hinzu.
04.10.2013
CuP - VO
7
Beispiel eines 1. KNW (d)
public int gibAnzahlDeutscherBuecher()
liefert die Anzahl der deutschsprachigen Bücher,
d.h. jener Bücher, für die sprache den
Wert "deutsch" hat.
public ArrayList<Buch>
getTaschenbuecher()
ArrayList
liefert eine ArrayList mit den im Bücherverzeichnis
vorhandenen Taschenbüchern.
04.10.2013
CuP - VO
8
Objektorientiertes
Programmieren (OOP)
• Objekte
– zentrale Konzept der OOP
– Programme laufen an/in Objekten ab
• Klassenbeschreibung definiert die
Eigenschaften der Objekte (dieser
Klasse)
–
–
–
–
welche Attribute
wie werden Objekte erzeugt
welche Methoden
was bewirkt ein Methodenaufruf
04.10.2013
CuP - VO
9
Syntax und Semantik
• Programmsyntax
– Gibt die Schreibweise von Programmen in
einer bestimmten Programmiersprache an.
– In Java wird die korrekte Syntax vom
Compiler geprüft.
• Programmsemantik
– Gibt die Bedeutung eines Programms an.
Was macht ein Programm?
– Kann durch Ausführen des Programms
getestet werden.
04.10.2013
CuP - VO
10
Java: Klassendefinition
public class klassenname
{
attributliste
konstruktordefinition
methodenliste
}
04.10.2013
CuP - VO
11
Attributdefinition
private typ attributname;
• Ein Typ definieren einen
Wertebereich.
– 8 Basistypen
• int,
int double,
double boolean,
boolean long,
long char,
char byte,
byte short,
short
float.
float
– Objekttypen (z.B. String)
• durch Angabe eines Klassennamens
04.10.2013
CuP - VO
12
Wichtige Basistypen
– ganze Zahl zwischen -231,…,231-1
• int
• double
– Gleitkommazahl (z.b.
-1.23 oder 1.2e-4)
• boolean
– logischer Wahrheitswert:
04.10.2013
CuP - VO
true oder false
13
Typ String
• Zeichenkette
–"TICKET"
–"Computer und Programmieren"
–""
– Die Anführungszeichen " sind nicht Teil der
Zeichenkette, sondern begrenzen sie,
"" bezeichnet den sogenannten Leerstring.
• Mit dem Zeichen + können Strings
zusammengefügt werden:
"Computer" + " " + "und" + " "
+ "Programmierung"
ergibt "Computer und Programmierung" .
04.10.2013
CuP - VO
14
Konstruktordefinition
public klassenname(parameterliste)
anweisungsliste
• Konstruktor
– erzeugt die Objekte der Klasse
– initialisiert dabei die Attribute
04.10.2013
CuP - VO
15
Methodendefinition
public returntyp methodenname(parameterliste)
anweisungsblock
• Wenn eine Methode einen Rückgabewert liefert,
dann gibt returntyp den Typ des
zurückgelieferten Werts an.
• Für eine Methode ohne Rückgabewert ist der
returntyp void.
void
04.10.2013
CuP - VO
16
Parameterliste
typ parametername,…,typ parametername
• Die Parameterliste gibt an, welche Werte an den
Konstruktor oder die Methode bei einem Aufruf
übergeben werden müssen.
• Die Parameterliste kann auch leer sein.
04.10.2013
CuP - VO
17
Anweisungsblock
{
anweisung1
anweisung2
…
}
• Im Anweisungsblock eines Konstruktors oder
einer Methode werden durch die Anweisungen
jene Aktionen definiert, die beim Aufruf
ausgeführt werden.
04.10.2013
CuP - VO
18
Anweisungen
• Zuweisung
attributname = ausdruck;
04.10.2013
CuP - VO
19
Die Objektreferenz this
• Mit der Objektreferenz this kann ein
Objekt immer sich selbst bezeichnen.
– Z.B.: this.titel
this
• Mit this kann zwischen Attributen und
gleichnamigen Parametern unterschieden
werden.
• Achtung: Gleichnamige Patameter sind
eine mögliche Fehlerquelle, wenn auf
this vergessen wird!
04.10.2013
CuP - VO
20
Die ArrayList
• Stellt eine Liste dar, in die mehrere Objekte
gleichen Typs eingetragen werden können.
• Eine ArrayList ist selbst wieder ein Objekt.
• Die Klasse ArrayList ist nicht automatische
verfügtbar (wie z.B. die Klasse String),
String sondern
muss importiert werden:
import java.util.ArrayList;
java.util.ArrayList
public class MyClass
{
…
}
• java.util bezeichnet das Java-Paket, das die
Klasse ArrayList enthält.
04.10.2013
CuP - VO
21
Definition einer ArrayList
ArrayList<typ>
ArrayList
• Für eine ArrayList wird auch der Typ der
Objekte angegeben, die sie enthalten soll.
• Z.B. bezeichnet
ArrayList<Buch>
ArrayList
eine Liste von Buch-Objekten.
04.10.2013
CuP - VO
22
Erzeugen einer ArrayList
new ArrayList<typ>()
ArrayList
• Erzeugt ein ArrayList-Objekt, das Objekte vom
angegebenen Typ enthalten kann.
• Die erzeugte ArrayList ist zu Beginn leer,
enthält also noch keine Objekte.
04.10.2013
CuP - VO
23
Hinzufügen von Elementen zu
einer ArrayList
public void add(typ
objekt)
add
• Fügt das angegebene Objekt am
Ende der Liste hinzu.
• Der Typ des Objekts muss mit dem
Typ der Objekte übereinstimmen,
die in der ArrayList gespeichert
werden können.
04.10.2013
CuP - VO
24
Computeranwendung und
Programmierung (CuP)
VO: Peter Auer (Informationstechnologie)
UE: Norbert Seifter (Angewandet Mathematik)
Organisatorisches
(Vorlesung)
• Vorlesungszeiten
– Montag 11:15 – 12:45
– Freitag 12:15 – 13:00 (Fragestunde/
Ersatztermin)
• Unterlagen
– Kurzskriptum, erhältlich in den Übungen
– Barnes & Kölling: Java lernen mit BlueJ.
– Web-Seite:
• Programmbeispiele, Folien, Übungsblätter,
Software, Merkblätter.
04.10.2013
CuP - VO
2
Organisatorisches
(Übungen)
• Aufgeteilt in 16 Gruppen
– Hilbertraum (Hauptgebäude)
– Computerraum IL+IT (RWZ)
• „Repetitorium zu Computeranwendung
und Programmierung“
– Tutoren
– Freies Üben (Eulerraum im TTZ)
• Alles weitere erfahren Sie in den
Übungen.
04.10.2013
CuP - VO
3
Inhalt der Lehrveranstaltung
• Objektorientiertes Programmieren
in Java
– Objekte, Klassen, Interaktion zwischen
Objekten
– Bedingte Anweisungen und Schleifen
– Arbeiten mit Listen
04.10.2013
CuP - VO
4
Beispiel eines 1. KNW (a)
Schreiben Sie eine Klasse Buch mit dem
Konstruktor
public Buch(String
String autor, String titel,
String isbn, int anzahlSeiten,
boolean istTaschenbuch,
String sprache) .
istTaschenbuch hat den Wert true,
true wenn das
Buch ein Taschenbuch ist, und ansonsten
den Wert false.
false
04.10.2013
CuP - VO
5
Beispiel eines 1. KNW (b)
Schreiben Sie weiters eine Klasse
Buecherverzeichnis mit dem Konstruktor
public Buecherverzeichnis() ,
der ein leeres Bücherverzeichnis erzeugt.
04.10.2013
CuP - VO
6
Beispiel eines 1. KNW (c)
Implementieren Sie in der Klasse
Buecherverzeichnis auch die folgenden Methoden:
public void addBuch(Buch einBuch)
fügt einBuch dem Bücherverzeichnis hinzu.
04.10.2013
CuP - VO
7
Beispiel eines 1. KNW (d)
public int gibAnzahlDeutscherBuecher()
liefert die Anzahl der deutschsprachigen Bücher,
d.h. jener Bücher, für die sprache den
Wert "deutsch" hat.
public ArrayList<Buch>
getTaschenbuecher()
ArrayList
liefert eine ArrayList mit den im Bücherverzeichnis
vorhandenen Taschenbüchern.
04.10.2013
CuP - VO
8
Objektorientiertes
Programmieren (OOP)
• Objekte
– zentrale Konzept der OOP
– Programme laufen an/in Objekten ab
• Klassenbeschreibung definiert die
Eigenschaften der Objekte (dieser
Klasse)
–
–
–
–
welche Attribute
wie werden Objekte erzeugt
welche Methoden
was bewirkt ein Methodenaufruf
04.10.2013
CuP - VO
9
Syntax und Semantik
• Programmsyntax
– Gibt die Schreibweise von Programmen in
einer bestimmten Programmiersprache an.
– In Java wird die korrekte Syntax vom
Compiler geprüft.
• Programmsemantik
– Gibt die Bedeutung eines Programms an.
Was macht ein Programm?
– Kann durch Ausführen des Programms
getestet werden.
04.10.2013
CuP - VO
10
Java: Klassendefinition
public class klassenname
{
attributliste
konstruktordefinition
methodenliste
}
04.10.2013
CuP - VO
11
Attributdefinition
private typ attributname;
• Ein Typ definieren einen
Wertebereich.
– 8 Basistypen
• int,
int double,
double boolean,
boolean long,
long char,
char byte,
byte short,
short
float.
float
– Objekttypen (z.B. String)
• durch Angabe eines Klassennamens
04.10.2013
CuP - VO
12
Wichtige Basistypen
– ganze Zahl zwischen -231,…,231-1
• int
• double
– Gleitkommazahl (z.b.
-1.23 oder 1.2e-4)
• boolean
– logischer Wahrheitswert:
04.10.2013
CuP - VO
true oder false
13
Typ String
• Zeichenkette
–"TICKET"
–"Computer und Programmieren"
–""
– Die Anführungszeichen " sind nicht Teil der
Zeichenkette, sondern begrenzen sie,
"" bezeichnet den sogenannten Leerstring.
• Mit dem Zeichen + können Strings
zusammengefügt werden:
"Computer" + " " + "und" + " "
+ "Programmierung"
ergibt "Computer und Programmierung" .
04.10.2013
CuP - VO
14
Konstruktordefinition
public klassenname(parameterliste)
anweisungsliste
• Konstruktor
– erzeugt die Objekte der Klasse
– initialisiert dabei die Attribute
04.10.2013
CuP - VO
15
Methodendefinition
public returntyp methodenname(parameterliste)
anweisungsblock
• Wenn eine Methode einen Rückgabewert liefert,
dann gibt returntyp den Typ des
zurückgelieferten Werts an.
• Für eine Methode ohne Rückgabewert ist der
returntyp void.
void
04.10.2013
CuP - VO
16
Parameterliste
typ parametername,…,typ parametername
• Die Parameterliste gibt an, welche Werte an den
Konstruktor oder die Methode bei einem Aufruf
übergeben werden müssen.
• Die Parameterliste kann auch leer sein.
04.10.2013
CuP - VO
17
Anweisungsblock
{
anweisung1
anweisung2
…
}
• Im Anweisungsblock eines Konstruktors oder
einer Methode werden durch die Anweisungen
jene Aktionen definiert, die beim Aufruf
ausgeführt werden.
04.10.2013
CuP - VO
18
Anweisungen
• Zuweisung
attributname = ausdruck;
04.10.2013
CuP - VO
19
Die Objektreferenz this
• Mit der Objektreferenz this kann ein
Objekt immer sich selbst bezeichnen.
– Z.B.: this.titel
this
• Mit this kann zwischen Attributen und
gleichnamigen Parametern unterschieden
werden.
• Achtung: Gleichnamige Patameter sind
eine mögliche Fehlerquelle, wenn auf
this vergessen wird!
04.10.2013
CuP - VO
20
Die ArrayList
• Stellt eine Liste dar, in die mehrere Objekte
gleichen Typs eingetragen werden können.
• Eine ArrayList ist selbst wieder ein Objekt.
• Die Klasse ArrayList ist nicht automatische
verfügtbar (wie z.B. die Klasse String),
String sondern
muss importiert werden:
import java.util.ArrayList;
java.util.ArrayList
public class MyClass
{
…
}
• java.util bezeichnet das Java-Paket, das die
Klasse ArrayList enthält.
04.10.2013
CuP - VO
21
Definition einer ArrayList
ArrayList<typ>
ArrayList
• Für eine ArrayList wird auch der Typ der
Objekte angegeben, die sie enthalten soll.
• Z.B. bezeichnet
ArrayList<Buch>
ArrayList
eine Liste von Buch-Objekten.
04.10.2013
CuP - VO
22
Erzeugen einer ArrayList
new ArrayList<typ>()
ArrayList
• Erzeugt ein ArrayList-Objekt, das Objekte vom
angegebenen Typ enthalten kann.
• Die erzeugte ArrayList ist zu Beginn leer,
enthält also noch keine Objekte.
04.10.2013
CuP - VO
23
Hinzufügen von Elementen zu
einer ArrayList
public void add(typ
objekt)
add
• Fügt das angegebene Objekt am
Ende der Liste hinzu.
• Der Typ des Objekts muss mit dem
Typ der Objekte übereinstimmen,
die in der ArrayList gespeichert
werden können.
04.10.2013
CuP - VO
24
Herunterladen