tut10_2.pdf
Post on 25-Dec-2015
9 Views
Preview:
TRANSCRIPT
Informatik I - Tutorium– Wintersemester 2007/08 –
Christian Julg
http://infotut.blogspot.com
18. Januar 2008
Universität Karlsruhe (TH)Forschungsuniversität · gegründet 1825
Quellennachweis & Dank an:Benjamin Brandmuller, Bernhard Muller, Jurgen Czerny
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Ubersicht
1 Organisatorisches
2 Ubungsblatt 9
3 Und nochmal...
4 Objektorientiertes Programmieren in 3 Schritten
5 OOP in Java
6 Beispiele
7 OOP die 2.
8 Wiederholung I
9 Wiederholung II
10 EndeFeedback
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
1 Organisatorisches
2 Ubungsblatt 9
3 Und nochmal...
4 Objektorientiertes Programmieren in 3 Schritten
5 OOP in Java
6 Beispiele
7 OOP die 2.
8 Wiederholung I
9 Wiederholung II
10 EndeFeedback
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Wenn doch noch Fragen auftauchen...
Kontakt
Kontakt: info1-tutor@gmx.de
Homepage: http://infotut.blogspot.com
bitte beachten:
Im Betreff der Emails [34] einfugen!
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Schein & IPK
Wer momentan mehr als 270 Theorie-Punkte und mehr als100 der Praxis-Punkte hat, hat sehr wahrscheinlich dienotwendige Halfte der Punkte.Nicht dass ich euch von etwas abhalten wollte ;)
Die inoffizielle Probeklausur (IPK) findet am 19.01.2008 statt.Informationen:http://anmeldungIPK.webhop.net
Bitte Samstag punktlich sein (= bis 13 Uhr da sein).
Vergesst nicht die 3 - Wochen - Regel.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Organisatorisches
Rechnerubung
Nachste normale RU mit Anmeldung am Di, 22.01. im RZ, PoolB - aber nur wenn es Anmeldungen gibt. Anmeldung per Emailoder direkt im Tut.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
1 Organisatorisches
2 Ubungsblatt 9
3 Und nochmal...
4 Objektorientiertes Programmieren in 3 Schritten
5 OOP in Java
6 Beispiele
7 OOP die 2.
8 Wiederholung I
9 Wiederholung II
10 EndeFeedback
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Ubungsblatt 9
Kurzer Ruckblick...
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Ubungsblatt 9
Kurzer Ruckblick...
Fragen?
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
1 Organisatorisches
2 Ubungsblatt 9
3 Und nochmal...
4 Objektorientiertes Programmieren in 3 Schritten
5 OOP in Java
6 Beispiele
7 OOP die 2.
8 Wiederholung I
9 Wiederholung II
10 EndeFeedback
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Einfache Prozessauswahlstrategien sind...
1 ... Round Robin.
2 ... Floyd Warshall.
3 ... First In First Out.
Was verursacht Interrupts, Exceptions oder Traps?
1
2
3
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Einfache Prozessauswahlstrategien sind...
1 ... Round Robin.
2 ... Floyd Warshall.
3 ... First In First Out.
Was verursacht Interrupts, Exceptions oder Traps?
1
2
3
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Einfache Prozessauswahlstrategien sind...
1 ... Round Robin.
2 ... Floyd Warshall.
3 ... First In First Out.
Was verursacht Interrupts, Exceptions oder Traps?
1 Interrupts: Hardware will etwas mitteilen.
2 Exceptions: User Code fuhrt fehlerhafte Anweisung durch
3 Traps: User Code ruft OS zur Hilfe (Syscall).
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
1 Organisatorisches
2 Ubungsblatt 9
3 Und nochmal...
4 Objektorientiertes Programmieren in 3 Schritten
5 OOP in Java
6 Beispiele
7 OOP die 2.
8 Wiederholung I
9 Wiederholung II
10 EndeFeedback
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Motivation
Warum OOP?
zunehmende Große von Programmen fuhrt zu Problemen:
Quellcode wird unubersichtlich
Strukturierung zunehmens schwerer
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Motivation
Warum OOP?
zunehmende Große von Programmen fuhrt zu Problemen:
Quellcode wird unubersichtlich
Strukturierung zunehmens schwerer
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Motivation
Warum OOP?
zunehmende Große von Programmen fuhrt zu Problemen:
Quellcode wird unubersichtlich
Strukturierung zunehmens schwerer
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Motivation
Warum OOP?
zunehmende Große von Programmen fuhrt zu Problemen:
Quellcode wird unubersichtlich
Strukturierung zunehmens schwerer
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Losungsansatz
Strukturierte Programmierung: (z.B. in C)
bietet Funktionen, zentrale Definition vonSignaturen(
”Interfaces“) und Konstanten
ermoglicht die Trennung von Definition (Header) undImplementierung ( *.c Quelldatei)
Nicht ausreichende Abstraktion:
immer mehr Variablen und Funktionen im gleichenNamensraum
globale Variablen sind nicht geschutzt
spatere strukturelle Anderungen an bestehenden Programmennur schwer moglich
⇒ Einfuhrung von Objektorientierung
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Losungsansatz
Strukturierte Programmierung: (z.B. in C)
bietet Funktionen, zentrale Definition vonSignaturen(
”Interfaces“) und Konstanten
ermoglicht die Trennung von Definition (Header) undImplementierung ( *.c Quelldatei)
Nicht ausreichende Abstraktion:
immer mehr Variablen und Funktionen im gleichenNamensraum
globale Variablen sind nicht geschutzt
spatere strukturelle Anderungen an bestehenden Programmennur schwer moglich
⇒ Einfuhrung von Objektorientierung
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Losungsansatz
Strukturierte Programmierung: (z.B. in C)
bietet Funktionen, zentrale Definition vonSignaturen(
”Interfaces“) und Konstanten
ermoglicht die Trennung von Definition (Header) undImplementierung ( *.c Quelldatei)
Nicht ausreichende Abstraktion:
immer mehr Variablen und Funktionen im gleichenNamensraum
globale Variablen sind nicht geschutzt
spatere strukturelle Anderungen an bestehenden Programmennur schwer moglich
⇒ Einfuhrung von Objektorientierung
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Losungsansatz
Strukturierte Programmierung: (z.B. in C)
bietet Funktionen, zentrale Definition vonSignaturen(
”Interfaces“) und Konstanten
ermoglicht die Trennung von Definition (Header) undImplementierung ( *.c Quelldatei)
Nicht ausreichende Abstraktion:
immer mehr Variablen und Funktionen im gleichenNamensraum
globale Variablen sind nicht geschutzt
spatere strukturelle Anderungen an bestehenden Programmennur schwer moglich
⇒ Einfuhrung von Objektorientierung
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Losungsansatz
Strukturierte Programmierung: (z.B. in C)
bietet Funktionen, zentrale Definition vonSignaturen(
”Interfaces“) und Konstanten
ermoglicht die Trennung von Definition (Header) undImplementierung ( *.c Quelldatei)
Nicht ausreichende Abstraktion:
immer mehr Variablen und Funktionen im gleichenNamensraum
globale Variablen sind nicht geschutzt
spatere strukturelle Anderungen an bestehenden Programmennur schwer moglich
⇒ Einfuhrung von Objektorientierung
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Losungsansatz
Strukturierte Programmierung: (z.B. in C)
bietet Funktionen, zentrale Definition vonSignaturen(
”Interfaces“) und Konstanten
ermoglicht die Trennung von Definition (Header) undImplementierung ( *.c Quelldatei)
Nicht ausreichende Abstraktion:
immer mehr Variablen und Funktionen im gleichenNamensraum
globale Variablen sind nicht geschutzt
spatere strukturelle Anderungen an bestehenden Programmennur schwer moglich
⇒ Einfuhrung von Objektorientierung
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Losungsansatz
Strukturierte Programmierung: (z.B. in C)
bietet Funktionen, zentrale Definition vonSignaturen(
”Interfaces“) und Konstanten
ermoglicht die Trennung von Definition (Header) undImplementierung ( *.c Quelldatei)
Nicht ausreichende Abstraktion:
immer mehr Variablen und Funktionen im gleichenNamensraum
globale Variablen sind nicht geschutzt
spatere strukturelle Anderungen an bestehenden Programmennur schwer moglich
⇒ Einfuhrung von Objektorientierung
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Losungsansatz
Strukturierte Programmierung: (z.B. in C)
bietet Funktionen, zentrale Definition vonSignaturen(
”Interfaces“) und Konstanten
ermoglicht die Trennung von Definition (Header) undImplementierung ( *.c Quelldatei)
Nicht ausreichende Abstraktion:
immer mehr Variablen und Funktionen im gleichenNamensraum
globale Variablen sind nicht geschutzt
spatere strukturelle Anderungen an bestehenden Programmennur schwer moglich
⇒ Einfuhrung von Objektorientierung
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Losungsansatz
Strukturierte Programmierung: (z.B. in C)
bietet Funktionen, zentrale Definition vonSignaturen(
”Interfaces“) und Konstanten
ermoglicht die Trennung von Definition (Header) undImplementierung ( *.c Quelldatei)
Nicht ausreichende Abstraktion:
immer mehr Variablen und Funktionen im gleichenNamensraum
globale Variablen sind nicht geschutzt
spatere strukturelle Anderungen an bestehenden Programmennur schwer moglich
⇒ Einfuhrung von Objektorientierung
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Losungsansatz
Strukturierte Programmierung: (z.B. in C)
bietet Funktionen, zentrale Definition vonSignaturen(
”Interfaces“) und Konstanten
ermoglicht die Trennung von Definition (Header) undImplementierung ( *.c Quelldatei)
Nicht ausreichende Abstraktion:
immer mehr Variablen und Funktionen im gleichenNamensraum
globale Variablen sind nicht geschutzt
spatere strukturelle Anderungen an bestehenden Programmennur schwer moglich
⇒ Einfuhrung von Objektorientierung
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Alan Kay (Erfinder von Smalltalk, der ersten durchgehendoo-Programmiersprache) wohnt Mitte der 80er einem Vortrag zurneuen Sprache Oberon bei, die OOP vorantreiben wollte.
Nach dem Vortrag hakte Kay nach:
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Alan Kay (Erfinder von Smalltalk, der ersten durchgehendoo-Programmiersprache) wohnt Mitte der 80er einem Vortrag zurneuen Sprache Oberon bei, die OOP vorantreiben wollte.
Nach dem Vortrag hakte Kay nach:
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
”Diese Sprache unterstutzt also keine Vererbung?“
”Das ist korrekt.“
”Und sie unterstutzt keine Polymorphie?“
”Das ist korrekt.“
”Und sie unterstutzt auch keine Datenkapselung?“
”Das ist ebenfalls korrekt.“
”Dann scheint mir das keine
objektorientierte Sprache zu sein.“
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
”Diese Sprache unterstutzt also keine Vererbung?“
”Das ist korrekt.“
”Und sie unterstutzt keine Polymorphie?“
”Das ist korrekt.“
”Und sie unterstutzt auch keine Datenkapselung?“
”Das ist ebenfalls korrekt.“
”Dann scheint mir das keine
objektorientierte Sprache zu sein.“
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
”Diese Sprache unterstutzt also keine Vererbung?“
”Das ist korrekt.“
”Und sie unterstutzt keine Polymorphie?“
”Das ist korrekt.“
”Und sie unterstutzt auch keine Datenkapselung?“
”Das ist ebenfalls korrekt.“
”Dann scheint mir das keine
objektorientierte Sprache zu sein.“
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
”Diese Sprache unterstutzt also keine Vererbung?“
”Das ist korrekt.“
”Und sie unterstutzt keine Polymorphie?“
”Das ist korrekt.“
”Und sie unterstutzt auch keine Datenkapselung?“
”Das ist ebenfalls korrekt.“
”Dann scheint mir das keine
objektorientierte Sprache zu sein.“
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Der Vortragende daraufhin:
”Nun, wer kann schon genau sagen, was nun
objektorientiert ist und was nicht.“
Woraufhin Alan Kay zuruckgab:
”Ich kann das. Ich bin Alan Kay, und ich habe den Begriff
gepragt.“
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Der Vortragende daraufhin:
”Nun, wer kann schon genau sagen, was nun
objektorientiert ist und was nicht.“
Woraufhin Alan Kay zuruckgab:
”Ich kann das. Ich bin Alan Kay, und ich habe den Begriff
gepragt.“
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Der Vortragende daraufhin:
”Nun, wer kann schon genau sagen, was nun
objektorientiert ist und was nicht.“
Woraufhin Alan Kay zuruckgab:
”Ich kann das. Ich bin Alan Kay, und ich habe den Begriff
gepragt.“
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Der Vortragende daraufhin:
”Nun, wer kann schon genau sagen, was nun
objektorientiert ist und was nicht.“
Woraufhin Alan Kay zuruckgab:
”Ich kann das. Ich bin Alan Kay, und ich habe den Begriff
gepragt.“
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Vererbung, Polymorphie und Datenkapselung bilden den Kernder OOP.
Daruber hinaus gibt es viele weitere”objekt-orientierte“
Vorgehensweisen⇒ Objektorientierung ist nicht an einzelneSpracheigenschaften gebunden
die eigentliche Objektorientierung findet im Kopf desProgrammierers statt!
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Vererbung, Polymorphie und Datenkapselung bilden den Kernder OOP.
Daruber hinaus gibt es viele weitere”objekt-orientierte“
Vorgehensweisen⇒ Objektorientierung ist nicht an einzelneSpracheigenschaften gebunden
die eigentliche Objektorientierung findet im Kopf desProgrammierers statt!
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Vererbung, Polymorphie und Datenkapselung bilden den Kernder OOP.
Daruber hinaus gibt es viele weitere”objekt-orientierte“
Vorgehensweisen⇒ Objektorientierung ist nicht an einzelneSpracheigenschaften gebunden
die eigentliche Objektorientierung findet im Kopf desProgrammierers statt!
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Vererbung, Polymorphie und Datenkapselung bilden den Kernder OOP.
Daruber hinaus gibt es viele weitere”objekt-orientierte“
Vorgehensweisen⇒ Objektorientierung ist nicht an einzelneSpracheigenschaften gebunden
die eigentliche Objektorientierung findet im Kopf desProgrammierers statt!
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Vererbung
grundsatzlich wird zwischen Schnittstellen- undImplementierungsvererbung unterschieden
Java bietet beides - in unterschiedlichem Maße
Schnittstellen-V. erlaubt verschiedenen Implementierungen diegleichen Anforderungen zu erfullen
wird in Java durch Interfaces (Nutzung uber implements)ermoglicht
Implementierungs-V. erlaubt das Verhalten einesProgrammteils zu erben und zu erweitern/verfeinern
wird in Java durch extends genutzt
wichtig: Mehrfachvererbung in Java nur fur Interfaces!
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Vererbung
grundsatzlich wird zwischen Schnittstellen- undImplementierungsvererbung unterschieden
Java bietet beides - in unterschiedlichem Maße
Schnittstellen-V. erlaubt verschiedenen Implementierungen diegleichen Anforderungen zu erfullen
wird in Java durch Interfaces (Nutzung uber implements)ermoglicht
Implementierungs-V. erlaubt das Verhalten einesProgrammteils zu erben und zu erweitern/verfeinern
wird in Java durch extends genutzt
wichtig: Mehrfachvererbung in Java nur fur Interfaces!
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Vererbung
grundsatzlich wird zwischen Schnittstellen- undImplementierungsvererbung unterschieden
Java bietet beides - in unterschiedlichem Maße
Schnittstellen-V. erlaubt verschiedenen Implementierungen diegleichen Anforderungen zu erfullen
wird in Java durch Interfaces (Nutzung uber implements)ermoglicht
Implementierungs-V. erlaubt das Verhalten einesProgrammteils zu erben und zu erweitern/verfeinern
wird in Java durch extends genutzt
wichtig: Mehrfachvererbung in Java nur fur Interfaces!
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Vererbung
grundsatzlich wird zwischen Schnittstellen- undImplementierungsvererbung unterschieden
Java bietet beides - in unterschiedlichem Maße
Schnittstellen-V. erlaubt verschiedenen Implementierungen diegleichen Anforderungen zu erfullen
wird in Java durch Interfaces (Nutzung uber implements)ermoglicht
Implementierungs-V. erlaubt das Verhalten einesProgrammteils zu erben und zu erweitern/verfeinern
wird in Java durch extends genutzt
wichtig: Mehrfachvererbung in Java nur fur Interfaces!
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Vererbung
grundsatzlich wird zwischen Schnittstellen- undImplementierungsvererbung unterschieden
Java bietet beides - in unterschiedlichem Maße
Schnittstellen-V. erlaubt verschiedenen Implementierungen diegleichen Anforderungen zu erfullen
wird in Java durch Interfaces (Nutzung uber implements)ermoglicht
Implementierungs-V. erlaubt das Verhalten einesProgrammteils zu erben und zu erweitern/verfeinern
wird in Java durch extends genutzt
wichtig: Mehrfachvererbung in Java nur fur Interfaces!
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Vererbung
grundsatzlich wird zwischen Schnittstellen- undImplementierungsvererbung unterschieden
Java bietet beides - in unterschiedlichem Maße
Schnittstellen-V. erlaubt verschiedenen Implementierungen diegleichen Anforderungen zu erfullen
wird in Java durch Interfaces (Nutzung uber implements)ermoglicht
Implementierungs-V. erlaubt das Verhalten einesProgrammteils zu erben und zu erweitern/verfeinern
wird in Java durch extends genutzt
wichtig: Mehrfachvererbung in Java nur fur Interfaces!
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Vererbung
grundsatzlich wird zwischen Schnittstellen- undImplementierungsvererbung unterschieden
Java bietet beides - in unterschiedlichem Maße
Schnittstellen-V. erlaubt verschiedenen Implementierungen diegleichen Anforderungen zu erfullen
wird in Java durch Interfaces (Nutzung uber implements)ermoglicht
Implementierungs-V. erlaubt das Verhalten einesProgrammteils zu erben und zu erweitern/verfeinern
wird in Java durch extends genutzt
wichtig: Mehrfachvererbung in Java nur fur Interfaces!
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Polymorphie
zu deutsch: Vielformigkeit
Polymorphie meint die Moglichkeit einer Variable, potentiellviele verschiedene Arten von Objekten aufzunehmen
Beispiel in Java:Object obj = "text"; obj.toString()
obj = new Double(2); obj.toString()
ein Objekt kann als jede seiner Oberklassen und jedeimplementierte Schnittstelle auftreten
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Polymorphie
zu deutsch: Vielformigkeit
Polymorphie meint die Moglichkeit einer Variable, potentiellviele verschiedene Arten von Objekten aufzunehmen
Beispiel in Java:Object obj = "text"; obj.toString()
obj = new Double(2); obj.toString()
ein Objekt kann als jede seiner Oberklassen und jedeimplementierte Schnittstelle auftreten
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Datenkapselung
die Details der Datenspeicherung in Objekten andert sich oftim Laufe der Entwicklung
Die OOP versucht diese Details daher zu verbergen(Geheimnisprinzip)
”fremde“ Klassen sollen nicht
”wissen“, wie diese Details
aussehen
Dadurch werden unnotige Abhangigkeiten im Code vermieden
nur das notwendigste ist von außen sicht- und nutzbar
in Java:
Variablen werden moglichst als private deklariert
Zugriff auf diese uber passende get- und set-Methoden
auf diese Art konnen sich die Schnittstelle und die eigentlichenDaten weitgehend unabhangig voneinander andern
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Datenkapselung
die Details der Datenspeicherung in Objekten andert sich oftim Laufe der Entwicklung
Die OOP versucht diese Details daher zu verbergen(Geheimnisprinzip)
”fremde“ Klassen sollen nicht
”wissen“, wie diese Details
aussehen
Dadurch werden unnotige Abhangigkeiten im Code vermieden
nur das notwendigste ist von außen sicht- und nutzbar
in Java:
Variablen werden moglichst als private deklariert
Zugriff auf diese uber passende get- und set-Methoden
auf diese Art konnen sich die Schnittstelle und die eigentlichenDaten weitgehend unabhangig voneinander andern
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Datenkapselung
die Details der Datenspeicherung in Objekten andert sich oftim Laufe der Entwicklung
Die OOP versucht diese Details daher zu verbergen(Geheimnisprinzip)
”fremde“ Klassen sollen nicht
”wissen“, wie diese Details
aussehen
Dadurch werden unnotige Abhangigkeiten im Code vermieden
nur das notwendigste ist von außen sicht- und nutzbar
in Java:
Variablen werden moglichst als private deklariert
Zugriff auf diese uber passende get- und set-Methoden
auf diese Art konnen sich die Schnittstelle und die eigentlichenDaten weitgehend unabhangig voneinander andern
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Datenkapselung
die Details der Datenspeicherung in Objekten andert sich oftim Laufe der Entwicklung
Die OOP versucht diese Details daher zu verbergen(Geheimnisprinzip)
”fremde“ Klassen sollen nicht
”wissen“, wie diese Details
aussehen
Dadurch werden unnotige Abhangigkeiten im Code vermieden
nur das notwendigste ist von außen sicht- und nutzbar
in Java:
Variablen werden moglichst als private deklariert
Zugriff auf diese uber passende get- und set-Methoden
auf diese Art konnen sich die Schnittstelle und die eigentlichenDaten weitgehend unabhangig voneinander andern
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Was ist OOP?
Datenkapselung
die Details der Datenspeicherung in Objekten andert sich oftim Laufe der Entwicklung
Die OOP versucht diese Details daher zu verbergen(Geheimnisprinzip)
”fremde“ Klassen sollen nicht
”wissen“, wie diese Details
aussehen
Dadurch werden unnotige Abhangigkeiten im Code vermieden
nur das notwendigste ist von außen sicht- und nutzbar
in Java:
Variablen werden moglichst als private deklariert
Zugriff auf diese uber passende get- und set-Methoden
auf diese Art konnen sich die Schnittstelle und die eigentlichenDaten weitgehend unabhangig voneinander andern
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
1 Organisatorisches
2 Ubungsblatt 9
3 Und nochmal...
4 Objektorientiertes Programmieren in 3 Schritten
5 OOP in Java
6 Beispiele
7 OOP die 2.
8 Wiederholung I
9 Wiederholung II
10 EndeFeedback
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
OOP in Java
Kern der OOP: Klassen und Objekte
Klasse: Schablone zur Erstellung eines konkreten ObjektesObjekt: Umsetzung einer Klasse
Vererbung, Polymorphie und Datenkapselung
Andere Sprachen verwenden teilweise andere Systeme, inJavascript z.B. Prototypen.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
OOP in Java
Kern der OOP: Klassen und Objekte
Klasse: Schablone zur Erstellung eines konkreten ObjektesObjekt: Umsetzung einer Klasse
Vererbung, Polymorphie und Datenkapselung
Andere Sprachen verwenden teilweise andere Systeme, inJavascript z.B. Prototypen.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
OOP in Java
Kern der OOP: Klassen und Objekte
Klasse: Schablone zur Erstellung eines konkreten ObjektesObjekt: Umsetzung einer Klasse
Vererbung, Polymorphie und Datenkapselung
Andere Sprachen verwenden teilweise andere Systeme, inJavascript z.B. Prototypen.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
OOP in Java
Kern der OOP: Klassen und Objekte
Klasse: Schablone zur Erstellung eines konkreten ObjektesObjekt: Umsetzung einer Klasse
Vererbung, Polymorphie und Datenkapselung
Andere Sprachen verwenden teilweise andere Systeme, inJavascript z.B. Prototypen.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
OOP in Java
Kern der OOP: Klassen und Objekte
Klasse: Schablone zur Erstellung eines konkreten ObjektesObjekt: Umsetzung einer Klasse
Vererbung, Polymorphie und Datenkapselung
Andere Sprachen verwenden teilweise andere Systeme, inJavascript z.B. Prototypen.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
OOP in Java
Kern der OOP: Klassen und Objekte
Klasse: Schablone zur Erstellung eines konkreten ObjektesObjekt: Umsetzung einer Klasse
Vererbung, Polymorphie und Datenkapselung
Andere Sprachen verwenden teilweise andere Systeme, inJavascript z.B. Prototypen.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Klassen, Objekte und Konstruktoren
Klassen
Gruppen von Objekten mit gleichen Merkmalen undMethoden werden in Klassen gebundelt.
Alle Instanzen einer Klasse teilen die gleichen Merkmale undMethoden, nur die Werte bzw. ihr Verhalten kannunterschiedlich sein.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Klassen, Objekte und Konstruktoren
Klassen
Gruppen von Objekten mit gleichen Merkmalen undMethoden werden in Klassen gebundelt.
Alle Instanzen einer Klasse teilen die gleichen Merkmale undMethoden, nur die Werte bzw. ihr Verhalten kannunterschiedlich sein.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Wie entsteht ein Objekt?
Um ein neues Objekt zu erzeugen, wird der Konstruktoraufgerufen.Den parameterlosen Konstruktor nennt man dabei dendefault-Konstruktor.Dieser lasst sich durch uberladen erweitern.Konstruktormethode:
heißt wie die Klasse
wird im Programm mit new aufgerufen
belegt die Attribute eines neuen Objekts mit (Start-)Werten
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Wie entsteht ein Objekt?
Um ein neues Objekt zu erzeugen, wird der Konstruktoraufgerufen.Den parameterlosen Konstruktor nennt man dabei dendefault-Konstruktor.Dieser lasst sich durch uberladen erweitern.Konstruktormethode:
heißt wie die Klasse
wird im Programm mit new aufgerufen
belegt die Attribute eines neuen Objekts mit (Start-)Werten
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Wie entsteht ein Objekt?
Um ein neues Objekt zu erzeugen, wird der Konstruktoraufgerufen.Den parameterlosen Konstruktor nennt man dabei dendefault-Konstruktor.Dieser lasst sich durch uberladen erweitern.Konstruktormethode:
heißt wie die Klasse
wird im Programm mit new aufgerufen
belegt die Attribute eines neuen Objekts mit (Start-)Werten
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Wie entsteht ein Objekt?
Um ein neues Objekt zu erzeugen, wird der Konstruktoraufgerufen.Den parameterlosen Konstruktor nennt man dabei dendefault-Konstruktor.Dieser lasst sich durch uberladen erweitern.Konstruktormethode:
heißt wie die Klasse
wird im Programm mit new aufgerufen
belegt die Attribute eines neuen Objekts mit (Start-)Werten
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Wie entsteht ein Objekt?
Um ein neues Objekt zu erzeugen, wird der Konstruktoraufgerufen.Den parameterlosen Konstruktor nennt man dabei dendefault-Konstruktor.Dieser lasst sich durch uberladen erweitern.Konstruktormethode:
heißt wie die Klasse
wird im Programm mit new aufgerufen
belegt die Attribute eines neuen Objekts mit (Start-)Werten
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Wie entsteht ein Objekt?
Um ein neues Objekt zu erzeugen, wird der Konstruktoraufgerufen.Den parameterlosen Konstruktor nennt man dabei dendefault-Konstruktor.Dieser lasst sich durch uberladen erweitern.Konstruktormethode:
heißt wie die Klasse
wird im Programm mit new aufgerufen
belegt die Attribute eines neuen Objekts mit (Start-)Werten
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
1 Organisatorisches
2 Ubungsblatt 9
3 Und nochmal...
4 Objektorientiertes Programmieren in 3 Schritten
5 OOP in Java
6 Beispiele
7 OOP die 2.
8 Wiederholung I
9 Wiederholung II
10 EndeFeedback
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Konstruktoren
1 class Book {
2 private String title;
3
4 Book() {
5 System.out.println("Book: default");
6 }
7
8 Book(String title) {
9 System.out.println("Book(String)");
10 this.title = title;
11 }
12
13 public static void main(String [] a){
14 new Book("Titel");
15 }
16 public String getTitle (){
17 return title;
18 }
19 }
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Konstruktoren
1 class CookBook extends Book {
2 private String title;
3 private String author;
4
5 CookBook(String title , String author) {
6 super(title);
7 this.author = author;
8 System.out.println("CookBook(String ,String)");
9 }
10
11 public static void main(String [] a){
12 CookBook book = new
CookBook("Studentenfutter", "Roland Koch");
13 System.out.println(book.getTitle ());
14 System.out.println(book.title);
15 System.out.println ((( Book)book).getClass ().getName ());
16 }
17 }
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Konstruktoren
1 class BoringBook extends Book {
2 public static void main(String [] a){
3 new BoringBook ();
4 }
5 }
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Referenz und Gleichheit
Referenz
Anders als C/C++ erlaubt Java keinen direkten Zugriff aufbeliebige Speicherbereiche.Es gibt aber dennoch Zeiger/Pointer:Jedes Objekt wird erst durch eine Referenz auf sich nutzbar. DieReferenz wird daher auch als Handle (Griff) bezeichnet.
Alles gleich?
Bei Objekten ist zwischen Referenzgleichheit und Attributgleichheitzu unterscheiden. Zwei Objekte, welche die gleichen Attributswertehaben mussen noch lange nicht “gleich“ sein.== und .equals() liefern nur in Sonderfallen das gleiche Ergebnis.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Punkt-Operator
Objektattribute und Mehtoden
Um auf Objektattribute und -methoden zuzugreifen kann man densog. Punkt-Operator verwendenWird auf ein Attribut oder eine Methode ohne Handle und Punktzugegriffen, wird implizit this. eingefugt.
Es ist besser (in Hinsicht auf das Geheimnisprinzip) die sog.get-/set-Methoden zu verwenden, um Objektattributeanzusprechen.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
get-/set-Methoden
Intention: Zugriff auf Objektattribute wird durch Methoden
”gekapselt“
1 c l a s s Book {2 /**3 * T i t l e o f the book .4 */5 p r i v a t e S t r i n g t i t l e ;67 /**8 * Re t r i e v e s the t i t l e9 * @re tu rn t i t l e o f the book
10 */11 p u b l i c S t r i n g g e t T i t l e ( ) {12 r e t u r n t i t l e ;13 }1415 /**16 * Se t s the t i t l e17 * @param t i t l e the t i t l e to s e t18 */19 p u b l i c v o i d s e t T i t l e ( S t r i n g t i t l e ) {20 t h i s . t i t l e = t i t l e ;21 }22 }
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
get-/set-Methoden (2)
Vorteil: zusatzliche Bearbeitung der Attribute moglich
1 class Point{
2 private double r;
3 private double phi;
4
5 public double getX() { return r *
Math.cos(phi); }
6
7 public double getY() { return r *
Math.sin(phi); }
8
9 public double getR() { return r; }
10
11 public double getPhi () { return phi; }
12 }
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
1 Organisatorisches
2 Ubungsblatt 9
3 Und nochmal...
4 Objektorientiertes Programmieren in 3 Schritten
5 OOP in Java
6 Beispiele
7 OOP die 2.
8 Wiederholung I
9 Wiederholung II
10 EndeFeedback
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Recycling
Was ist ist der Sinn von Vererbung?
Ahneln sich Klassen dahin gehend, dass eine die Erweiterung deranderen ist, so ist es sinnvoll keine komplett neue Klasse zuschreiben.So konnen wir die Klassen Car und Truck beide von Vehicleableiten, und so einige gemeinsame Eigenschaften und Methodenzentralisieren.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Recycling
Vererbung in Java
Eine Klasse erbt durch das Schlusselwort extends.Bsp.:class Truck extends Vehicle {}
Eine Klasse kann nur von einer anderen Klasse erben.
Methoden einer Tochterklasse konnen Methoden derOberklasse uberladen und uberdecken. Variablen derTochterklasse konnen Variablen der Oberklasse uberdecken.
Um eine uberdeckte Methode der Oberklasse aufzurufen odereine uberdeckte Variable der Oberklasse anzusprechen, dientdas Schlusselwort super.Bsp.: super.SetTires(4);
Es gibt kein super.super oder anliches!
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Recycling
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Klasse, noch mehr Arten...
In Java unterscheidet man zwischen class, abstract class undinterface.
Was ist...?
abstract classEine abstrakte Klasse erzeugt keine Objekte.Dies ist dann sinnvoll, wenn sie ausschließlich eineVerallgemeinerung mehrerer anderer Klassen ist, selbst aber nichtinstanziiert werden soll.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Klasse, noch mehr Arten...
In Java unterscheidet man zwischen class, abstract class undinterface.
Was ist...?
interfaceDa es in Java keine Mehrfachvererbung gibt, es aber trotzdemsinnvoll ist, Methodendeklarationen von mehreren Schnittstellen zuerben, existieren Interfaces in Java.Weil Interfaces keine Implementierungen, Variablen oderKonstruktoren enthalten, nennt man das vererben auch nicht“ableiten“, sondern “implementieren“. Eine Klasse kann von einer(abstrakten) Klasse erben und/oder mehrere Interfacesimplementieren.Bsp.: class Truck extends Vehicle implements Engine,Siren {}
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
static
Was druckt static aus?
. . . vor Variablen
. . . vor Methoden
. . . sonst?
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
static
Was druckt static aus?
. . . vor Variablen
. . . vor Methoden
. . . sonst?
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
static
Was druckt static aus?
. . . vor Variablen
. . . vor Methoden
. . . sonst?
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
1 Organisatorisches
2 Ubungsblatt 9
3 Und nochmal...
4 Objektorientiertes Programmieren in 3 Schritten
5 OOP in Java
6 Beispiele
7 OOP die 2.
8 Wiederholung I
9 Wiederholung II
10 EndeFeedback
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Graphentheorie - IPK 06/07
Der kleine Max wohnt in einem kleinen Dorf, geht jedoch in derNachbarstadt zur Schule.Da die Stadtkinder den kleinen Max immer damit aufziehen, dassin seinem kleinen Dorf doch jeder mit jedem verwandt sei, will erdas Gegenteil beweisen und bittet seinen Vater, in eineAdjazenzmatrix mit den Namen aller Dorfbewohner einzutragen,wer mit Max verwandt ist.Der Schreibaufwand ist seinem Vater aber zu groß und er tragt nurein, wer Vater bzw. Mutter von wem ist und welche Partnergeheiratet haben.Max ist ratlos. Mit dieser unvollstandigen Matrix kann er niebeweisen, dass die Behauptung seiner Mitschuler falsch ist. Dochdann fallt ihm ein, dass es nur 2 Klassen geben kann: Die Leute,die mit ihm verwandt sind und die anderen, auf die das nichtzutrifft. Somit muss es eine Aquivalenzrelation sein.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe I
Geben Sie informell einen Algorithmus an, der dieVerwandschaftsbeziehungen vervollstandigt. Welcher ihnenbekannte Teilalgorithmus ist enthalten? (4 Punkte)
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe I
Wir nehmen an es gibt n Personen in dem Dorf und diese spannen eine n x n - Adjazenzmatrix M, mit Index 0 bisn-1, auf.
Setze i,j,k = 0;Solange i < n tue
Solange j < n tueWenn Mij = 1 dann
Setze Mji = 1;Setze j = j + 1;
Setze i = i + 1;Setze i,j,k = 0;Solange i < n tue
Setze Mii = 1;Setze i = i +1;
Setze i = 0;Solange i < n tue
Solange j < n tueSolange k < n tue
Wenn Mij = 1 und Mjk = 1 dannSetze Mik = 1;
Setze k = k + 1;Setze j = j + 1;
Setze i = i + 1;
Der Algorithmus vervollstandigt erst die Symmetrie der Kanten und fuhrt dann den Warshallalgorithmus aus.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe II
Gegeben ist ein Ausschnitt der kompletten Matrix. Wenden Sie denAlgorithmus Schritt-fur-Schritt an und geben Sie zusatzlich an,welche Eigenschaft einer Aquivalenzrelation Sie geradevervollstandigen. (3 Punkte)
0 0 0 1 0 00 0 0 0 0 10 0 0 0 0 00 1 0 0 1 00 0 0 0 0 00 0 0 0 0 0
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe II
Schritt 1: Symmetrie
0 0 0 1 0 00 0 0 0 0 10 0 0 0 0 00 1 0 0 1 00 0 0 0 0 00 0 0 0 0 0
→
0 0 0 1 0 00 0 0 1 0 10 0 0 0 0 01 1 0 0 1 00 0 0 1 0 00 1 0 0 0 0
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe II
Schritt 2: Reflexivitat
0 0 0 1 0 00 0 0 1 0 10 0 0 0 0 01 1 0 0 1 00 0 0 1 0 00 1 0 0 0 0
→
1 0 0 1 0 00 1 0 1 0 10 0 1 0 0 01 1 0 1 1 00 0 0 1 1 00 1 0 0 0 1
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe II
Schritt 3: Transitivitat
1 0 0 1 0 00 1 0 1 0 10 0 1 0 0 01 1 0 1 1 00 0 0 1 1 00 1 0 0 0 1
→
1 0 0 1 0 00 1 0 1 0 10 0 1 0 0 01 1 0 1 1 10 0 0 1 1 00 1 0 1 0 1
→
1 1 0 1 1 11 1 0 1 1 10 0 1 0 0 01 1 0 1 1 11 1 0 1 1 11 1 0 1 1 1
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe III
Geben Sie den zu der Adjazenzmatrix passenden Graphen an.Zeichnen Sie dazu fur jede Relation der Matrix eine Kante. Umwelche Art von Graph handelt es sich? Durch eine Eigenschaft derAquivalenzrelation konnen Sie den Graphen auch anders darstellen.Um welche Eigenschaft handelt es sich und welcher Art ist dannder Graph? (2 Punkte)
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe III
1
2
3
4
56
Es handelt sich um einen gerichteten, zyklischen Graphen.
Durch die Eigenschaft der Symmetrie kann man ihn auch in einen ungerichteten Graphen uberfuhren.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe IV
Welche Eigenschaft muss nach der Ausfuhrung des Algorithmus dieMatrix besitzen, damit Max das Gegenteil beweisen kann und wiemacht sich diese in seinen Graphen bemerkbar? Trifft dieBehauptung zu? Begrunden Sie ihre Anwort! (1 Punkt)
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe IV
Sollten Max’ Mitschuler recht haben, so wurde jede Person aus derMatrix in Relation mit allen anderen stehen. Es reicht also aus,dass eine Person mit einer anderen nicht verwandt ist. Aufgrundder Aquivalenz ist diese Person auch nicht verwandt mit denVerwandten der anderen Person.Der Graph ist nicht vollstandig.Die Behauptung von Max’ Mitschulern stimmt nicht. Es handeltsich zwar nur um einen Auszug der gesamten Matrix, jedoch zeigtdiese einen isolierten Knoten auf, wodurch mindestens einDorfbewohner mit den anderen nicht verwandt ist.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Pause
Pause?
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
1 Organisatorisches
2 Ubungsblatt 9
3 Und nochmal...
4 Objektorientiertes Programmieren in 3 Schritten
5 OOP in Java
6 Beispiele
7 OOP die 2.
8 Wiederholung I
9 Wiederholung II
10 EndeFeedback
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Graphentheorie - IPK 06/07
Schon beim Aufstehen muss Homer heute fluchen. Nachdem ersich beim Rasieren geschnitten hat, erfahrt er, dass er Maggie mitzur Arbeit nehmen muss, weil der Kindergarten geschlossen wurdeund Marge nicht auf sie aufpassen kann. Fur gewohnlich fruhstuckter zu Hause und fahrt dann seine Kinder auf dem Weg zur Arbeitin die Schule, jedoch hat Marge den Sirup fur die Pfannkuchenvergessen und in solchen Fallen nimmt er einen Umweg uberKrusty-Burgers.Wahrend der Fahrt uberlegt er, dass er einen Doublekrustyburgermit Extrakase, Pommes, Ketchup, Mayo und Cola oder einenTriplekrustyburger ohne Extrakase, mit Pommes, Mayo oderKetchup dazu und Cola will.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe I
Lisa bestellt fur Homer bei Krusty-Burgers in Prafixform,Postfixform und als das nichts hilft, malt sie der Verkauferin denKantorowitsch-Baum auf.Tun Sie es Lisa gleich und erstellen Sie Kantorowitsch-Baum, Pra-,Post-, und Infixschreibweise von Homers Bestellung. Kurzen Siedazu die Lebensmittel mit ihren Anfangsbuchstaben ab. (4 Punkte)
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe I
∨
∧ ∧
D ∧ T ∧
E $ ∧∧
E P ∧P ∧
∨ CK ∧
M KM C
Infix: (D ∧ E ∧ P ∧ K ∧ M ∧ C) ∨ (T ∧ $E ∧ P ∧ (M ∨ K) ∧ C)Prafix: ∨ ∧ D ∧ E ∧ P ∧ K ∧ MC ∧ T ∧ $E ∧ P ∧ ∨MKCPostfix: DEPKMC ∧ ∧ ∧ ∧ ∧ TE$PMK ∨ C ∧ ∧ ∧ ∧∨
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe II
Auf der Arbeit angekommen macht Homer wieder das, was erjeden Tag macht: Wahllos Knopfe drucken und schlafen, denn ersieht nicht, was im Reaktorraum passiert. Lediglich 4 LEDs aufdem Pult sagen ihm, ob sich der Reaktor uberhitzt oder nicht.Handelt es sich bei Homers Arbeit um eine Regelung oderSteuerung? Begrunden Sie ihre Antwort. (1 Punkt)
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe II
Es handelt sich um eine Steuerung, da Homer den Reaktor bzw.das was im Reaktor passiert nicht wahrnehmen kann. Er verandertzwar die gewunschte Große, kann dies jedoch nicht erfassen.Alternativ:Es handelt sich um eine Regelung, da Homer uber die LEDs sieht,ob eine kritische Situation eingetreten ist und kann dannGegenmaßnahmen einleiten, die den Reaktor wiederherunterkuhlen.
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe III
Damit heute nichts schief geht, hat Lisa Homer einen Spickzettelauf Maggie’s Strampler geschrieben. Dieser besagt, dass derReaktor sich nur dann uberhitzt, wenn 2 neben einander stehendeLEDs leuchten oder die erste und die letzte LED zusammen.Wandeln Sie diese Aussage in eine Normalform der boolschenAlgebra um. Um welche Normalform handelt es sich? Bennen Siedie Variablen mit den Buchstaben a fur die erste bis d fur dieletzte LED auf dem Pult. (2 Punkte)
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Aufgabe III
(a∧$b∧$c∧d)∨(a∧b∧$c∧$d)∨($a∧b∧c∧$d)∨($a∧$b∧c∧d)Es handelt sich um die disjunktive Normalform (DNF).
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
1 Organisatorisches
2 Ubungsblatt 9
3 Und nochmal...
4 Objektorientiertes Programmieren in 3 Schritten
5 OOP in Java
6 Beispiele
7 OOP die 2.
8 Wiederholung I
9 Wiederholung II
10 EndeFeedback
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Zum Schluss...
Was ihr nun wissen solltet!
Welche Vorteile hat OOP?
Was ist ein Konstruktor?
Was ist Objekt- bzw. Attributgleichheit?
Wozu abstrakte Klassen?
Was bewirkt static?
Was ist der Unterschied zwischen uberladen unduberschreiben?
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Zum Schluss...
Was ihr nun wissen solltet!
Welche Vorteile hat OOP?
Was ist ein Konstruktor?
Was ist Objekt- bzw. Attributgleichheit?
Wozu abstrakte Klassen?
Was bewirkt static?
Was ist der Unterschied zwischen uberladen unduberschreiben?
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Zum Schluss...
Was ihr nun wissen solltet!
Welche Vorteile hat OOP?
Was ist ein Konstruktor?
Was ist Objekt- bzw. Attributgleichheit?
Wozu abstrakte Klassen?
Was bewirkt static?
Was ist der Unterschied zwischen uberladen unduberschreiben?
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Zum Schluss...
Was ihr nun wissen solltet!
Welche Vorteile hat OOP?
Was ist ein Konstruktor?
Was ist Objekt- bzw. Attributgleichheit?
Wozu abstrakte Klassen?
Was bewirkt static?
Was ist der Unterschied zwischen uberladen unduberschreiben?
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Zum Schluss...
Was ihr nun wissen solltet!
Welche Vorteile hat OOP?
Was ist ein Konstruktor?
Was ist Objekt- bzw. Attributgleichheit?
Wozu abstrakte Klassen?
Was bewirkt static?
Was ist der Unterschied zwischen uberladen unduberschreiben?
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Zum Schluss...
Was ihr nun wissen solltet!
Welche Vorteile hat OOP?
Was ist ein Konstruktor?
Was ist Objekt- bzw. Attributgleichheit?
Wozu abstrakte Klassen?
Was bewirkt static?
Was ist der Unterschied zwischen uberladen unduberschreiben?
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Zum Schluss...
Was ihr nun wissen solltet!
Welche Vorteile hat OOP?
Was ist ein Konstruktor?
Was ist Objekt- bzw. Attributgleichheit?
Wozu abstrakte Klassen?
Was bewirkt static?
Was ist der Unterschied zwischen uberladen unduberschreiben?
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Zum Schluss...
Was ihr nun wissen solltet!
Welche Vorteile hat OOP?
Was ist ein Konstruktor?
Was ist Objekt- bzw. Attributgleichheit?
Wozu abstrakte Klassen?
Was bewirkt static?
Was ist der Unterschied zwischen uberladen und uberschreiben?
Ihr wisst was nicht?
Stellt jetzt Fragen!
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Feedback
Dann habe ich noch eine Frage:
Wie fandet ihr dieses Tutorium?
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Feedback
Dann habe ich noch eine Frage:
Wie fandet ihr dieses Tutorium?
War ich zu schnell? Zu langsam?
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Feedback
Dann habe ich noch eine Frage:
Wie fandet ihr dieses Tutorium?
War ich zu schnell? Zu langsam?
Habe ich bestimmte Sachen zu kurz behandelt?
Informatik I - Tutorium Christian Julg
Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende
Feedback
Dann habe ich noch eine Frage:
Wie fandet ihr dieses Tutorium?
War ich zu schnell? Zu langsam?
Habe ich bestimmte Sachen zu kurz behandelt?
Was kann ich verbessern?
Informatik I - Tutorium Christian Julg
top related