tut10_2.pdf

123
Informatik I - Tutorium – Wintersemester 2007/08 – Christian J¨ ulg http://infotut.blogspot.com 18. Januar 2008 Universität Karlsruhe (TH) Forschungsuniversität · gegründet 1825 Quellennachweis & Dank an: Benjamin Brandm¨ uller, Bernhard M¨ uller, J¨ urgen Czerny

Transcript of tut10_2.pdf

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: [email protected]

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

Orga Blatt 9 Und nochmal... OOP OOP in Java Beispiele OOP die 2. Wdhlg I Wdhlg II Ende

Informatik I - Tutorium Christian Julg