Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU...

33
Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt Nachqualifizierungskurs für Informatiklehrkräfte

Transcript of Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU...

Page 1: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Stefan Winter · Uni PassauMatthias Spohrer · TU München

P. Brichzin u. H.D. Jäger – LMU München

9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt

Nachqualifizierungskurs für Informatiklehrkräfte

Page 2: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 2

Inhaltsübersicht

Infos Klassen und Objekte, Methoden Generalisierung, Spezialisierung und Vererbung Abstrakte Klassen Nachbereitung mit Übung: Sortieralgorithmen Klausurbesprechung

Page 3: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 3

Infos - Präsenztage

Donnerstag, 13.03.03

14-18 Uhr HS 0670

Funktionale Modellierung

Dienstag, 08.04.03 14-18 Uhr HS 1601

Funkt. Mod. & OOM

Mittwoch, 07.05.03 14-18 Uhr HS 1601

OOM

Montag, 02.06.03* 15(?)-17 Uhr*

HS 0220

Auf Wunsch, zur Klausur

Donnerstag, 26.06.03

10-12 Uhr HS 0220

Klausur

*ob und ab wann dieser Präsenztag stattfinden soll, werden wir jetzt gemeinsam ausmachen. •Außerdem eine Abschlussveranstaltung im Juli.

Page 4: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 4

Beispielberechnung Staatsexamen

Klausur: Theoretische Info 5

Klausur: DB, Betriebssysteme etc. 4

mdl. Prüfung: Theoretische Info 3

mdl. Prüfung: Spezialgebiet 2

mdl. Prüfung: Fachdidaktik 2

Schnitt 1. Staatsexamen:Schnitt 1. Staatsexamen: 3,713,71

Bitte nicht verzweifeln oder aufhören! Durchhalten!!!!

Page 5: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 5

Sonstiges / Infos / Aussprache

Fragen zur Klausur?

Fragen zum aktuellen Stoff?

Page 6: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 6

Kleine Aufwärmübung

Staatsexamen Herbst 1991, Aufgabe 4 Staatsexamen Herbst 1991, Aufgabe 4

Durch die Funktionsvereinbarung

function f(x,y,z:nat)nat:

if x=y then z else f(x,y+1,(y+1)*z) endif

ist eine Funktion f gegeben.

1. a)      Bestimmen Sie den Wert von f(4,0,2)!

2. b)      Beweisen Sie: f(x,y,z) terminiert für alle x,y,z oo mit xy!

Page 7: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 7

Kleine Aufwärmübung

Staatsexamen Herbst 1991, Aufgabe 4 Staatsexamen Herbst 1991, Aufgabe 4

a) (4,0,2) (4,1,2) (4,2,4) (4,3,12) (4,4,48) 48

b) Lässt sich verbal auch sehr anschaulich begründen. y wird in

jedem Funktionsaufruf um 1 erhöht während x gleich bleibt. Ist

also zu Beginn x

f f f f f

3

y, so ist nach Schritten x = y und

der Algorithmus terminiert.

Sei : ( , , ) |

: , ( , , ) ist Abstiegsfunktion für f

offensichtlich: ( , , ) 0

( , , ) 0 terminiert

( , 1, ( 1) )

x y

M x y z x y

h M x y z x y

h x y z

h x y z x y f

h x y y z

( 1) 1 ( , , )x y x y x y h x y z

Page 8: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 8

Rückblick Berechengenauigkeit

Blatt 6a:

Programmierung einer Potenzfunktion potenz: float x nat float

Testen des Programms: 0.2^3 = 0.008

Es wurde NICHT falsch programmiert!! Warum erhält man dennoch diese Ausgabe?(Als Antwort bitte neue Eingabewerte, bei denen die Berechnung nach unseren Vorstellungen funktioniert!)

Page 9: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 9

Rückblick BerechengenauigkeitBlatt 6a: Programmierung einer Potenzfunktion potenz: float x nat float

Testen des Programms: 0.25^3 = 0.015625

Computer rechnet im Dualsystem 0.2 wird in einen Dualbruch umgewandelt: ein periodischer Dualbruch, der irgendwo abgeschnitten wird Ungenauigkeit

0.25 = ¼ ist ein endlicher Dualbruch keine Ungenauigkeit

Abhilfe bei den Ungenauigkeiten: Runden nach einer gewissen Stellenzahl (so macht es der Taschenrechner)

Page 10: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 10

OOM und OOP

Stuhl von Frau Müller

Stuhl von Herrn Huber

Frau Müller

Page 11: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 11

Klassen

Klasse ist „Bauplan“ zur Erzeugung von gleichartigen Objekten

Gleichartige Objekte verfügen über

• dieselben Methoden (= gleiches Verhalten) und

• und über dieselben Attribute, die aber unterschiedliche Werte haben (können) (= unterschiedlicher Zustand)

Stuhl

Methode1

Methode2

...

Attribut1

Attribut2

...

Klassenname

Darstellung mit UML „Bestandteile“ einer Klasse:

• Attribute (=Eigenschaften)

• Methoden: Operationen, z.B. der Umgang mit den eigenen Attributen

• Zusicherung (=Constraints): bestimmte Bedingungen, die immer erfüllt sein müssen

• Konstruktor(en) zur Erzeugung von Objekten ( spezielle Methode)

Page 12: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 12

Objekte

Objekt ist eine zur Ausführungszeit vorhandene Instanz (Exemplar), das sich entsprechend dem Bauplan ihrer Klasse verhält

Klasse Objekt{instance of}

Stuhl StuhlMueller{instance of}

Objekte werden mit ihrem „Konstruktor“ erzeugt, dieser bedient sich dem Bauplan der zugehörigen Klasse - dazu später jedoch mehr.

Page 13: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 13

Kreis+radius {radius>0}+mittelpunkt: Point = (10, 10)+anzeigen()+entfernen()+setPosition(pos:Point)+setRadius(neuerRadius)

Klassen mit Details

Zusicherung

Initialwert

Attribut-Typ

Parameter(Name: Typ = Initialwert)

Page 14: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 14

Klassen mit Details

Page 15: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 15

Methoden

Zweck einer Methode:

• aus imperativer Programmiersicht:

• aus objektorientierter Programmiersicht:

Unterprogramm, Funktion, Prozedur

Operation eines Objekts (oder einer Klasse)

Page 16: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 16

Aufruf und Definition von Objektmethoden

Definition:

Aufruf: im Normalfall durch Objekte

beispielmethode (3, “abc“)

in der Klasse, dessen Instanz beispielobjekt ist

beispielmethode (int para1, String para2) { ... }

void

int

...

Rückgabetyp

Angabe notwendig, falls Methode eines fremden Objekts

beispielobjekt.

Parameter-übergabe

a =

b = c +

methode( )

{ ... return ...}

public

private

...

Sichtbarkeit

Page 17: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 17

Aufruf und Definition von Klassenmethoden

Definition:

Aufruf: durch Klasse

beispielmethode (3, “abc“)

in der Klasse

beispielmethode (int para1, String para2) { ... }

Angabe notwendig, falls Methode einer fremden Klasse

Beispielklasse.

static

Aufruf einer Klassenmethode ohne vorherige Objekterzeugung möglich! Verwendung bei Klassen, die nur Methoden beinhalten, aber „keine Daten“ Beispiel: Klasse, die lediglich Rechenoperationen für Brüche zur Verfügung stellt.

Sichtbarkeitsmodifikatoren und Behandlung der Rückgabewerte wie bei Objektmethoden

Typisches Beispiel einer Klassenmethode: main

Page 18: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 18

Bearbeiten Sie die Aufgabe 1!

Page 19: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 19

Objektorientierte Softwareentwicklung

Geschichte der Softwareentwicklung ist eine kontinuierliche Steigerung der Geschichte der Softwareentwicklung ist eine kontinuierliche Steigerung der Abstraktionen – von Bitmuster über Makrobefehle, Prozeduren, abstrakte Abstraktionen – von Bitmuster über Makrobefehle, Prozeduren, abstrakte Datentypen zu ObjektenDatentypen zu ObjektenObjektorientierung als neue DenkweiseObjektorientierung als neue Denkweise

Softwareentwicklung: Softwareentwicklung:

KommunikationExperten im Software-entwicklungsteam

Experten im Anwendungsbereich

Softwareentwicklung ist NICHT in erster Linie eine technische Aufgabe, sie ist heute ein komplexer sozialer Prozess

P. Brichzin

Page 20: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 20

Objektorientierte Softwareentwicklung

Modellierungstechniken mit einer einheitlichen Notation und SemantikModellierungstechniken mit einer einheitlichen Notation und Semantik Unified Modelling Language zur ObjektOrientiertenProgrammierung Unified Modelling Language zur ObjektOrientiertenProgrammierung

P. Brichzin

Page 21: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 21

Objektorientierte Softwareentwicklung

Unterschiede zum alten Vorgehen

1. ganzheitliche Arbeitsgegenstände statt Trennung von Daten und Operationen wird nun durch das Klassenkonzept mit Einheiten aus Daten und Operationen gearbeitet die Modellierung wird den Strukturen, Zusammenhängen und Abhängigkeiten der realen Welt besser gerecht

2. bessere AbstraktionsmöglichkeitDie Modellierung liegt mehr im Problembereich, weniger im Lösungsbereich (z.B. Struktogramme sind schon sehr weit unten im Lösungsbereich)

P. Brichzin

Page 22: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 22

Objektorientierte Softwareentwicklung

Beispiel: bessere Abstraktionsmöglichkeiten durch OOM

Teil/Ganzes-Beziehung (Hat-eine-Beziehung)

Ein Objekt besteht aus Teilen z.B. ein Fahrrad aus Rahmen, Hinter- Vorderrad, Gangschaltung, Bremsen,...

 Man sagt: „Schau, dort fährt ein Fahrrad!“ anstatt „Schau, dort fahren Rahmen, Hinter- Vorderrad, Gangschaltung, Bremsen,...“

  in imperativen Programmiersprachen gibt es dafür Strukturen: Rekords

Oberbegriff-Beziehung (Ist-eine-Beziehung)

Die Oberbegriff-Beziehung fasst mehrere Arten oder Varianten von Objekten unter einem Begriff zusammen z.B. ein Mountainbike ist ein Fahrrad. Ein Fahrrad ist ein nichtmotorisiertes Fahrzeug, ...

 Man sagt: „Schau, dort fahren drei Fahrräder!“ anstatt „Schau, dort fahren ein Mountainbike, ein Trekkingrad und ein Tandem!“

 Dieses Abstraktionsmittel wird in den nicht objektorientierten Sprachen NICHT unterstützt

P. Brichzin

Page 23: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 23

Objektorientierte Softwareentwicklung

Unterschiede zum alten Vorgehen

3. methodische Durchgängigkeit in allen Phasen wird mit denselben Konzepten, der selben Modellierungstechnik gearbeitet (Klassen, Objekte, Beziehungen, ...)

P. Brichzin

Page 24: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 24

Objektorientierte Softwareentwicklung

Beispiel methodische Durchgängigkeit

EntwicklerIn: „Was ist Euch wichtig?“AnwenderIn: „Der Kunde.“EntwicklerIn: „Was ist denn ein Kunde, welche Merkmale sind für Euch relevant?“ AnwenderIn: „Der Kunde hat einen Namen, eine Anschrift und eine Bonität, die wir

überprüfen.“

Class Kunde{

String name;Anschrift anschrift;Bonitaet int;

public int bonitaetPruefen(){...}

}

Kunde+name+anschrift+bonitaet+bonitaetPruefen()()

P. Brichzin

Page 25: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 25

Objektorientierte Softwareentwicklung

Unterschiede zum alten Vorgehen

4. evolutionäre EntwicklungEin komplexes System entsteht nicht auf einmal. Alle komplexen Systeme in der Natur haben sich schrittweise entwickelt. Jeder Zwischenschritt musste sich erst einmal Stabilisieren und seine Funktions- und Lebensfähigkeit beweisen (z.B. Evolution Mensch) objektorientierte Softwareentwicklung kann das Prinzip der Evolution auf die Softwareentwicklung übertragen

P. Brichzin

Page 26: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 26

Bearbeiten Sie die Aufgabe 2!

Page 27: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 27

Generalisierung/Spezialisierung

Personal

Beamte Angestellte Arbeiter

Lehrkräfte

GENERALISIERUNG

SPEZIALISIERUNG

Eine Sub- bzw. Unterklasse hat alle Attribute und Methoden der Super- bzw. Oberklasse (Prinzip der Vererbung).

Sie besitzt aber in der Regel auch spezifische Attribute und Methoden.

Methoden, die in einer Oberklasse implementiert sind, können in einer Unterklasse überschrieben werden.

Eine Unterklasse kann auch von mehreren Oberklassen erben. Man spricht von MehrfachvererbungDiese Art der Vererbung ist problematisch, z.B. wenn mehrere der Oberklassen eine Methode mit dem gleichen Namen haben. Sie wird deshalb von vielen objektorientierten Programmiersprachen – darunter Java – nicht unterstützt.

Page 28: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 28

Generalisierung/Spezialisierung

Vorteile dieses Modellierungskonstrukts• Reduzierung des Programmcodes, da „allgemeinere“ Methoden nur in der

Oberklasse definiert werden müssen.• Attribute mit dem Datentyp einer Oberklasse können auch mit Objekten von

Unterklassen belegt werden

Das Generalisierungsmodell ist uns bereits aus der DB-Modellierung bekannt, konnte dort aber bei der Implementierung der Datenbank nicht umgesetzt werden.

Modellierung in UMLOberklasse

Unterklasse1 Unterklasse2

Implementierung in JavaÄnderung lediglich in der Klassendeklaration der Unterklasse(n)

class <Unterklasse> extends <Oberklasse> { ... }

Page 29: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 29

Abstrakte Klassen I

Generalisierungshierarchie: Subklassen haben gemeinsame MethodenOft ein Problem: Man weiß nicht, wie die Implementierung dieser Methoden in einer möglichen Unterklasse ausschaut.Lösung: Definition der Oberklasse als abstrakte Klasse

Eine abstrakte Klasse enthält mindestens eine nicht implementierte Methode. (= abstrakte Methode). Diese muss in allen Unterklassen spezifisch implementiert werden.

Beispiel: Oberklasse FigurEs gibt viele denkbare Unterklassen (Kreis, Rechteck, ...), von denen vielleicht

einige erst zu einem späteren Zeitpunkt implementiert werden.Alle Unterklassen sollen z.B. eine Methode berechne_umfang besitzenberechne_umfang wird als abstrakte Methode definiert

Page 30: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 30

Kreis+radius {radius>0}+setRadius(neuerRadius)

Rechteck+a {a>0}+b {b>0}+setA(neuA)+setB(neuB)

GeomFigur+x: Integer+y: Integer = (10, 10)+sichtbar: Boolean+anzeigen()+entfernen()+setPosition(neuX:Integer,neuY:Integer)

Abstrakte Methoden werden in der Oberklasse deklariert,

Die Methoden anzeigen() und entfernen sind abhängig von der Form der geometrischen Figur

aber erst als konkrete Methoden in der Unterklasse spezifiziert

Page 31: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 31

abstrakte Klassen

Es macht keinen Sinn von der Klasse GeomFigur komkrete Exemplare (Objekte) zu erzeugen sie wird als abstrakte Klasse festgelegt: Von der Klasse (n)

abstract class GeomFigur { ... }

Kreis+radius {radius>0}+setRadius(neuerRadius)

Rechteck+a {a>0}+b {b>0}+setA(neuA)+setB(neuB)

GeomFigur+x: Integer+y: Integer = (10, 10)+sichtbar: Boolean+anzeigen()+entfernen()+setPosition(neuX:Integer,neuY:Integer)

Klassenname kursiv

Page 32: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 32

OOM und OOP

bisher verwendet

public static void main (String [] args) { ... }

Sichtbarkeitsmodifikator:

private – kann nur von Objekten der eigenen Klasse aufgerufen werden

Datenkapselung / Information Hiding

Methoden werden in der Regel von Instanzen „benutzt“. static macht eine Methode zur Klassenmethode sie ist ohne Instanz aufrufbar

Kein Rückgabewert

Page 33: Stefan Winter · Uni Passau Matthias Spohrer · TU München P. Brichzin u. H.D. Jäger – LMU München 9. Präsenzveranstaltung 07.04.2003 – TU Stammgelände Innenstadt.

Nachqualifizierungskurs für InformatiklehrkräfteMatthias Spohrer · TU München

Seite 33

Fragen

?