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 autor, String titel, String isbn, int anzahlseiten, boolean isttaschenbuch, String sprache). isttaschenbuch hat den Wert true, wenn das Buch ein Taschenbuch ist, und ansonsten den Wert 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() 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, double, boolean, long, char, byte, short, float. Objekttypen (z.b. String String) durch Angabe eines Klassennamens 04.10.2013 CuP - VO 12
Wichtige Basistypen int ganze Zahl zwischen -2 31,,2 31-1 double Gleitkommazahl (z.b. -1.23 oder 1.2e-4) boolean logischer Wahrheitswert: true true oder false 04.10.2013 CuP - VO 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. 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 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), sondern muss importiert werden: import 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> Für eine ArrayList wird auch der Typ der Objekte angegeben, die sie enthalten soll. Z.B. bezeichnet ArrayList<Buch> eine Liste von Buch-Objekten. 04.10.2013 CuP - VO 22
Erzeugen einer ArrayList new ArrayList<typ>() 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) 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 autor, String titel, String isbn, int anzahlseiten, boolean isttaschenbuch, String sprache). isttaschenbuch hat den Wert true, wenn das Buch ein Taschenbuch ist, und ansonsten den Wert 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() 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, double, boolean, long, char, byte, short, float. Objekttypen (z.b. String String) durch Angabe eines Klassennamens 04.10.2013 CuP - VO 12
Wichtige Basistypen int ganze Zahl zwischen -2 31,,2 31-1 double Gleitkommazahl (z.b. -1.23 oder 1.2e-4) boolean logischer Wahrheitswert: true true oder false 04.10.2013 CuP - VO 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. 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 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), sondern muss importiert werden: import 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> Für eine ArrayList wird auch der Typ der Objekte angegeben, die sie enthalten soll. Z.B. bezeichnet ArrayList<Buch> eine Liste von Buch-Objekten. 04.10.2013 CuP - VO 22
Erzeugen einer ArrayList new ArrayList<typ>() 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) 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