Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Grundkonzepte der objektorientierten Programmierung Teil 2 Klaus Becker 2006.

Ähnliche Präsentationen


Präsentation zum Thema: "Grundkonzepte der objektorientierten Programmierung Teil 2 Klaus Becker 2006."—  Präsentation transkript:

1 Grundkonzepte der objektorientierten Programmierung Teil 2 Klaus Becker 2006

2 2 Objektorientierte Modellierung 1$ Miniwelt Modell System

3 3 Teil 1 Beziehungen zwischen Objekten

4 4 Das Würfelspiel chuck a luck 1$ Einsatz zahlen und Zahl tippen Würfel werfen Gewinn auszahlen Einsatz: 1 $ 3 Gewinn: 0 Treffer: 1 Treffer: Einsatz + 1 $ 2 Treffer: Einsatz + 2 $ 3 Treffer: Einsatz + 3 $ 1$ 3

5 5 Zielsetzung 1$ Miniwelt System Ziel ist es, ein Simulationsprogramm zu entwickeln, mit dem das Würfelspiel chuck a luck am Rechner gespielt werden kann. Am Beispiel dieses einfachen und überschaubaren Systems sollen Grundkonzepte der objektorientierten Programmierung verdeutlicht werden.

6 6 Lösungsansatz mit Modellierung 1$ Miniwelt System Modell - Abbild der Miniwelt - Vorlage für das System Ansatz: Mit Hilfe eines Modells soll die Miniwelt zunächst programmiersprachen- unabhängig beschrieben werden. Das Modell soll dann helfen, in einem zweiten Schritt das Programm möglichst gut zu strukturieren.

7 7 Spiel ohne Überwachung Das bisher entwickelte Programm zur Simulation des Chuck-A-Luck-Spiels lässt noch Bedienungen zu, die in der Miniwelt nicht erlaubt sind. Einsatz zahlen und Zahl tippen Würfel werfen Gewinn verbuchen Einsatz zahlen Zahl tippen (z. B. 2) Solange Würfel werfen, bis die getippte Zahl fällt Gewinn mehrfach verbuchen

8 8 Zustandsbasierte Ablaufmodellierung Auslösendes Ereignis BEinsatzZahlen. onClick RGSpielfeld. onClick BWuerfelWerfen. onClick BGewinnVerbuchen. onClick Ausgelöste Aktion(en) Einsatz vom Konto abbuchen Spielzahl festlegen Würfelwerfen simulieren Gewinn ermitteln und auf dem Konto verbuchen Aktueller Zustand bereit einsatzgezahlt gewürfelt Neuer Zustand einsatzgezahlt gewürfelt bereit Einsatz zahlen und Zahl tippen Würfel werfen Gewinn verbuchen

9 9 Spiel mit Spielmanager 1$ Miniwelt In der Miniwelt wird der korrekte Spielablauf durch eine Person überwacht und gesteuert. In der Modellwelt soll diese Steuerung durch ein Objekt spielmanager übernommen werden. Dieses Objekt ist zuständig für die Verwaltung des Spielzustandes und die jeweilige Aktivierung der am Spiel beteiligten Objekte.

10 10 Spiel mit Spielmanager spielbrettwuerfelAwuerfelBwuerfelC zahl = 3augen = 3 augen = 5 1$ Miniwelt Modell konto stand = 9 spielmanager... Zuständigkeit: verwaltet den Spielzustand und erteilt die passenden Aufträge an die Spiel- Objekte

11 11 Spielmanager aktiviert Spiel-Objekte Auslösendes Ereignis BEinsatzZahlen. onClick Ausgelöste Aktion(en) Einsatz vom Konto abbuchen Aktueller Zustand bereit Neuer Zustand einsatzgezahlt BEinsatzZahlen.OnClick [zustand = bereit]:

12 12 Spielmanager aktiviert Spiel-Objekte RGSpielfeld.onClick [zustand = einsatzgezahlt]: Auslösendes Ereignis RGSpielfeld. onClick Ausgelöste Aktion(en) Spielzahl festlegen Aktueller Zustand einsatzgezahlt Neuer Zustand einsatzgezahlt

13 13 Spielmanager aktiviert Spiel-Objekte BWuerfelWerfen.onClick [zustand = einsatzgezahlt]: Auslösendes Ereignis BWuerfelWerfen. onClick Ausgelöste Aktion(en) Würfelwerfen simulieren Aktueller Zustand einsatzgezahlt Neuer Zustand gewürfelt

14 14 Spielmanager aktiviert Spiel-Objekte BGewinnVerbuchen.onClick [zustand = gewuerfelt]: Auslösendes Ereignis BGewinnVerbuchen. onClick Ausgelöste Aktion(en) Gewinn ermitteln und auf dem Konto verbuchen Aktueller Zustand gewürfelt Neuer Zustand bereit

15 15 Aktivierung von Objekten Zustand vorher Zustand nachher abheben(1) Aktivierung durch eine Nachricht konto stand = 9 konto stand = 9 konto stand = 8 spielmanager zustand = bereit Ein Objekt stellt seiner Umgebung bestimmte Dienste (Operationen) zur Verfügung. Durch eine Nachricht veranlasst ein Kunde das Objekt, die Dienstleistung zu erledigen. Das Objekt führt dann die Operation aus.

16 16 Beziehung zwischen Objekten Ein Nachrichtenaustausch zwischen Objekten kann nur stattfinden, wenn das sendende Objekt die Nachricht dem Empfängerobjekt zustellen kann. Hierzu müssen diese Objekte in Beziehung zueinander stehen. wuerfelA wuerfelB wuerfelC kontospielmanager kennt spielbrett kennt wuerfelA wuerfelB wuerfelC kontospielmanager spielbrett hat

17 17 Hat-Beziehung / Komposition Bei dieser Struktur geht man davon aus, dass ein Objekt ein anderes besitzt, d. h. die vollständige Kontrolle über dieses Objekt hat. Insbesondere ist es für die Erzeugung und Vernichtung des kontrollierten Objekts zuständig. Man spricht in diesem Fall von einer Hat-Beziehung. wuerfelA wuerfelB wuerfelC kontospielmanager hat spielbrett hat

18 18 Kennt-Beziehung / Verbindung wuerfelA wuerfelB wuerfelC kontospielmanager kennt spielbrett kennt Bei diesen Beziehungen führen die beteiligten Objekte ein Eigenleben. Die in Verbindung stehenden Objekte sind zwar aufeinander angewiesen, weil sie beispielsweise miteinander kommunizieren müssen, um eine gemeinsame Aufgabe zu erledigen, aber es reicht, wenn ein Objekt das andere kennt. Man spricht von einer Kennt-Beziehung zwischen Objekten.

19 19 Modell mit Spielmanager TSpielbrett hat TWuerfel hat TWuerfel hat TWuerfel hat TKonto hat wuerfelA wuerfelB wuerfelC kontospielmanager spielbrett hat TSpielmanager - zustand: erzeugen + vernichten + einsatzZahlen + spielzahlSetzen(z: int.) + wuerfelWerfen + gewinnVerbuchen + getZustand:......

20 20 Modell mit Spielmanager TSpielbrett kennt TWuerfel kennt TWuerfel kennt TWuerfel kennt TKonto kennt wuerfelA wuerfelB wuerfelC kontospielmanager kennt spielbrett kennt TSpielmanager - zustand: erzeugen + vernichten + einsatzZahlen + spielzahlSetzen(z: int.) + wuerfelWerfen + gewinnVerbuchen + getZustand:......

21 21 Teil 2 Objekte in Aktion

22 22 Zielsetzung Ziel ist es, das Chuck-A-Luck-Spiel mit einem Spielmanager zu simulieren. Beachte: In BlueJ werden Hat- und Kennt-Beziehung auf gleiche Weise mit Hilfe von Pfeilen dargestellt. Kennt-BeziehungHat-Beziehung

23 23 Modell mit Hat-Beziehung Schritt 1: Erzeugen Sie ein Objekt GUI als Exemplar der Klasse TGUI.

24 24 Modell mit Hat-Beziehung Schritt 2: Inspizieren Sie zunächst das Objekt GUI und die von ihm verwalteten Spielobjekte. Hier erkennt man, welches Objekt auf welches andere einen direkten Zugriff hat.

25 25 Modell mit Hat-Beziehung Schritt 3: Aktivieren Sie mit Hilfe von GUI die einzelnen Spielaktionen. Die Veränderungen der Objektzustände kann man sich durch Inspektion anschauen.

26 26 Modell mit Hat-Beziehung Schritt 4: Aktivieren Sie abschließend die Methode spielDatenAnzeigen des Objekts GUI. Diese Methode sollte jetzt genau die Spielergebnisse anzeigen, die man auch durch Inspektion der Objekte erhält.

27 27 Modell mit Kennt-Beziehung Schritt 1: Erzeugen Sie ein Objekt GUI als Exemplar der Klasse TGUI. Schritt 2: Inspizieren Sie dieses Objekt und die von ihm verwalteten Objekte.

28 28 Modell mit Kennt-Beziehung Schritt 3: Führen Sie ein Spiel mit den Methoden von GUI aus. Schritt 4: Lassen Sie GUI die Spielergebnisse anzeigen.

29 29 Teil 3 Implementierung der Hat-Beziehung

30 30 Zielsetzung spielmanagerwuerfelA instance of zustand =...augen = 3 Die Implementierung der Hat-Beziehung soll anhand eines Teilmodells des Gesamtmodells gezeigt werden. Wir verzichten vorerst auf die Verwaltung des Spielzustands. TSpielmanager - zustand: create + wuerfelWerfen... TWuerfel hat instance of Teil-Modell erstellen fertig

31 31 Referenzen schaffen Beziehungen 3A80 Speicheradresse Referenzattribut Mit Hilfe von Referenzattributen kann ein Objekt sich die Adressen seiner Beziehungspartner merken.

32 32 Klasse mit Referenzattribut 3A80 Speicheradresse Referenzattribut TSpielmanager - zustand:... - wuerfelA: TWuerfel... + erzeugen + vernichten + einsatzZahlen + spielzahlSetzen(z: int.) + wuerfelWerfen + gewinnVerbuchen + getZustand: Referenzattribut Die Klasse TSpielmanager muss um Referenzattribute erweitert werden, mit deren Hilfe die Beziehungen zu anderen Objekten verwaltet werden.

33 33 Modellstruktur wuerfelAspielmanager hat FGUI hat Bei der Hat-Beziehung geht man davon aus, dass ein Objekt ein anderes besitzt, d. h. die vollständige Kontrolle über dieses Objekt hat. Insbesondere ist es für die Erzeugung und Vernichtung des kontrollierten Objekts zuständig. Man spricht in diesem Fall von einer Hat-Beziehung.

34 34 Modellklasse mit Referenzattributen unit uSpielmanager; interface uses uWuerfel; type TSpielmanager = class private wuerfelA: TWuerfel; public constructor create; destructor destroy; override;... end; implementation Einbindung der Klassen-Unit Deklaration des Referenzattributs TSpielmanager - wuerfelA: TWuerfel...

35 35 Erzeugung des Würfel-Objekts type TSpielmanager = class private wuerfelA: TWuerfel; public constructor create; destructor destroy; override;... end; implementation constructor TSpielmanager.create; begin wuerfelA := TWuerfel.create; end; destructor TSpielmanager.destroy; begin wuerfelA.free; end; wuerfelAspielmanager hat FGUI hat Modellstruktur

36 36 Implementierung einer Nachricht... type TSpielmanager = class private wuerfelA: TWuerfel; public constructor create; destructor destroy; override; procedure wuerfelWerfen;... end; implementation... procedure TSpielmanager.wuerfelWerfen; begin wuerfelA.werfen; end; Empfängerobjekt Modellstruktur wuerfelAspielmanager werfen Nachricht Senderobjekt-Klasse Operation wuerfelAspielmanager hat FGUI hat

37 37 Erzeugung des Spielmanager-Objekts unit uGUI; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, uSpielmanager; type TGUI = class(TForm)... private { Private-Deklarationen } spielmanager: TSpielmanager; public { Public-Deklarationen } end; implementation {$R *.DFM} procedure TGUI.FormCreate(Sender: TObject); begin spielmanager := TSpielmanager.create; end;... Modellstruktur wuerfelAspielmanager hat FGUI hat

38 38 Zugriff auf Objekte unit uGUI; interface... implementation {$R *.DFM} procedure TGUI.BWerfenClick(Sender: TObject); begin // Aktualisierung der Modell-Objekte spielmanager.wuerfelWerfen; // Aktualisierung der Anzeige PWuerfelA.Caption := IntToStr(spielmanager.getWuerfelA); end;... Kein direkter Zugriff auf wuerfelA möglich wuerfelAspielmanager getAugen FGUI getWuerfelA Modellstruktur Nachrichten wuerfelAspielmanager hat FGUI hat

39 39 Zugriff auf ein abhängiges Objekt unit uGUI; interface... implementation {$R *.DFM} procedure TGUI.BWerfenClick(...); begin // Aktualisierung der Modell-Objekte spielmanager.wuerfelWerfen; // Aktualisierung der Anzeige PWuerfelA.Caption := IntToStr(spielmanager.getWuerfelA); end; Hilfsoperation TSpielmanager - wuerfelA: Wuerfel... + create + destroy + wuerfelWerfen... + getWuerfelA: integer... function TSpielmanager.getWuerfelA: integer; begin result := wuerfelA.getAugen; end; wuerfelAspielmanager hat FGUI hat

40 40 Aufgabe Die gezeigte Implementierung des Teilmodells Spielmanager hat Wuerfel finden Sie im Verzeichnis ChuckALuck21NurWuerfelnMitHatBeziehung. Testen Sie zunächst diese Implementierung. Beachten Sie, dass man hier nur Würfel A werfen kann. Bauen Sie dann schrittweise diese Implementierung zu einer Implementierung des gesamten Spiels aus. Berücksichtigen Sie zunächst noch nicht den jeweiligen Spielzustand. Berücksichtigen Sie in einem letzten Schritt den jeweiligen Spielzustand. Eine vollständige Implementierung finden Sie im Verzeichnis ChuckALuck22GesamtesSpielMitHatBeziehung.

41 41 Teil 4 Implementierung einer Kennt-Beziehung

42 42 Zielsetzung spielmanagerwuerfelA instance of zustand =...augen = 3 Hier sollen die Ähnlichkeiten und Unterschiede zwischen einer Implementierung der Kennt-Beziehung und der Hat-Beziehung aufgezeigt werden. TSpielmanager - zustand: create + wuerfelWerfen... TWuerfel kennt instance of Teil-Modell

43 43 Bekanntschaft durch Referenzen Die Ausgangssituation bleibt gleich: Die Klasse TSpielmanager muss um Referenzattribute erweitert werden, mit deren Hilfe die Beziehungen zu anderen Objekten verwaltet werden. 3A80 Speicheradresse Referenzattribut TSpielmanager - zustand:... - wuerfelA: TWuerfel... + erzeugen + vernichten + einsatzZahlen + spielzahlSetzen(z: int.) + wuerfelWerfen + gewinnVerbuchen + getZustand: Referenzattribut

44 44 Modellstruktur wuerfelAspielmanagerFGUI hat Bei der Kennt-Beziehung führen die beteiligten Objekte ein Eigenleben. Die in Verbindung stehenden Objekte sind zwar aufeinander angewiesen, weil sie beispielsweise miteinander kommunizieren müssen, um eine gemeinsame Aufgabe zu erledigen, aber es reicht, wenn ein Objekt das andere kennt. kennt

45 45 Erzeugung der Objekte unit uGUI; interface uses..., uWuerfel, uSpielmanager; type TGUI = class(TForm)... private { Private-Deklarationen } wuerfelA: TWuerfel; spielmanager: TSpielmanager; public { Public-Deklarationen } end; implementation {$R *.DFM} procedure TGUI.FormCreate(Sender: TObject); begin randomize; wuerfelA := TWuerfel.create; spielmanager := TSpielmanager.create(wuerfelA); end; Modellstruktur wuerfelAspielmanagerFGUI hatkennt

46 46 Erzeugung der Kennt-Referenz spielmanager := TSpielmanager.create(wuerfelA); 3A80 constructor TSpielmanager.create(wA: TWuerfel); begin wuerfelA := wA; end; 3A80

47 47 Zugriff auf Objekte unit uGUI; interface... implementation {$R *.DFM} procedure TGUI.BWerfenClick(Sender: TObject); begin // Aktualisierung der Modell-Objekte spielmanager.wuerfelWerfen; // Aktualisierung der Anzeige PWuerfelA.Caption := IntToStr(wuerfelA.getAugen); end;... direkter Zugriff auf wuerfelA möglich Modellstruktur Nachrichten wuerfelAspielmanagerFGUI hatkennt getAugen wuerfelAspielmanagerFGUI wuerfelWerfen werfen

48 48 Aufgabe Die gezeigte Implementierung des Teilmodells Spielmanager kennt Wuerfel finden Sie im Verzeichnis ChuckALuck31NurWuerfelnMitKenntBeziehung. Testen Sie zunächst diese Implementierung. Beachten Sie, dass man hier nur Würfel A werfen kann. Bauen Sie dann schrittweise diese Implementierung zu einer Implementierung des gesamten Spiels aus. Berücksichtigen Sie zunächst noch nicht den jeweiligen Spielzustand. Berücksichtigen Sie in einem letzten Schritt den jeweiligen Spielzustand. Eine vollständige Implementierung finden Sie im Verzeichnis ChuckALuck32GesamtesSpielMitKenntBeziehung.

49 49 Aufgabe Das Simulationsprogramm zum Chuck-A-Luck-Spiel soll jetzt wie folgt verändert werden: - Es werden gezinkte Würfel benutzt (die keine 6 ermöglichen). - Der Spieleinsatz beträgt jetzt 2$, als Gewinne erhält man das 3-fache der Anzahl der Treffer (in $) zurück. - Die Würfel werden mit Hilfe von Bildern angezeigt. Machen Sie sich zunächst klar, wo im bestehenden Programm die jeweiligen Änderungen vorgenommen werden müssen (in einem gut strukturierten objektorientierten Programm sollte das kein Problem sein). Nehmen Sie dann die Änderungen schrittweise vor.

50 50

51 51 Teil 5 Übung: Uhr

52 52 Zielsetzung Ziel ist es, mit Hilfe objektorientierter Modellierung ein System zu entwickeln, mit dem eine einfache Uhr simuliert werden kann. Nach: Barnes / Kölling: Objektorientierte Programmierung mit Java. Pearson Studium 2003.

53 53 Objekte und ihre Beziehung Miniwelt Die Digitaluhr der Miniwelt soll mit Hilfe eines Objekts digitalUhr beschrieben werden, das seine Operationen mit Hilfe von zwei von ihm verwalteten Objekten stundenZaehler und minutenZaehler durchführt. 16:46 stundenZaehlerminutenZaehler Modell digitalUhr hat

54 54 Klassenentwurf stundenZaehler TModuloZaeher - max: integer - stand: integer + create(maxWert: integer) + destroy + setStand(standWert: int.) + weiterZaehlen + nullSetzen + getStand: integer max = 23 stand = 16 minutenZaehler max = 59 stand = 46 TDigitalUhr sZaehler: TModuloZaehler mZaehler: TModuloZaehler erzeugen vernichten setzen(sWert, mWert) tick rueckSetzen... digitalUhr sZaehler = mZaehler = hat

55 55 Aufgabe Implementieren Sie das dargestellte (oder ein selbst entwickeltes) Modell.

56 56 Teil 6 Übung: Chiffriersystem

57 57 Zielsetzung Ziel ist es, mit Hilfe objektorientierter Modellierung ein monoalphabetisches Chiffriersystem zu entwickeln.

58 58 Der Chiffrieransatz Der Benutzer gibt ein (langes) Schlüsselwort vor (z. B. WEITERBILDUNGSKURSX), aus dem dann die Chiffriertabelle wie folgt erzeugt wird. Man streicht zunächst alle mehrfach vorkommenden Buchstaben (im Beispiel ergibt das WEITRBLDUNGSKSX). Diese Buchstaben bilden den Anfang des Geheimtextalphabets. Dann füllt man ab der letzten Stelle mit den noch zur Verfügung stehenden Buchstaben des Alphabets auf. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z W E I T R B L D U N G S K X Y Z A C F H J M O P Q V Klartextalphabet Geheimtextalphabet

59 59 Objekte und ihre Beziehung chiffrierercodierung Modell WEITERBILDUNGSKURSX VDOYHFDHVDU Geheimtext Schlüssel Quelltext Schlüssel Quelltext SALVECAESAR A B C D E F G H I J K L M N O P Q R S T U V W X Y Z W E I T R B L D U N G S K X Y Z A C F H J M O P Q V Miniwelt hat

60 60 Klassenentwurf chiffrierercodierung TCodierung code: array [A..Z] of char erzeugen setCode(s: string) getCode: string getGeheim(klar: char): char getKlar(geheim: char): char TChiffrierer quelltext geheimtext chluessel codierung erzeugen setSchluessel(...) getSchluessel:... vorbereiten verschluesseln entschluesseln... hat

61 61 Aufgabe Implementieren Sie das dargestellte (oder das selbst entwickelte) Modell.

62 62 Teil 7 Übung: Roboter

63 63 Zielsetzung Ziel ist es, mit Hilfe objektorientierter Modellierung ein grafisches Simulationsprogramm zu entwickeln, mit dem ein steuerbarer Modellroboter in einem Zellengitter bewegt werden kann.

64 64 Identifikation von Objekten Miniwelt OstenWesten Süden Norden (6,4) roboterwelt Modell kennt

65 65 Klassenentwurf TWelt marken: array [0..9] of array [0..9] of boolean ziegel: array [0..9] of array [0..9] of integer erzeugen markeSetzen(x, y: integer) markeLoeschen(x, y: integer) ziegelHinlegen(x, y: integer) ziegelAufheben(x, y: integer) getMarke(x, y: integer): boolean getZiegel(x, y: integer): integer TRoboter xPos yPos richtung welt erzeugen initialisieren schritt linksDrehen rechtsDrehen markeSetzen markeLoeschen... kennt

66 66 Aufgabe Implementieren Sie das dargestellte (oder das selbst entwickelte) Modell.

67 67 Teil 8 UML-Editoren

68 68 UML-Editoren UML-Editoren unterstützen den Entwickler beim Erstellen von Diagrammen. (Beispiel: Violet)

69 69 UML-Werkzeuge UML-Werkzeuge unterstützen den Entwickler auch beim Erstellen des Quellcodes und der Dokumentation von Modellen. (Beispiel: UMLEd)

70 70 UML-Werkzeuge Quellcode – erzeugt mit UMLEd: UNIT mTWuerfel; interface uses // Uses-Klausel ggf. anpassen type TWuerfel = CLASS // Attribute private augen : integer; //Objektbeziehungen // Methoden public constructor create; procedure werfen; function getAugen : integer; end;...

71 71 UML-Werkzeuge Dokumentation – erzeugt mit UMLEd: Dokumentation der Klasse "TWuerfel" Beschreibung der Klasse: Attribute augen : integer beschreibt die aktuelle Augenzahl des Würfels Protokoll der Dienste / Methoden Konstruktor create Auftrag werfen aktiviert den Würfel so, dass (mit Hilfe des Zufallsgenerators) eine neue Augenzahl erzeugt wird Anfrage getAugen : integer

72 72 Aufgabe Testen Sie den UML-Editor Violet und das UML-Werkzeug UMLed.

73 73 Teil 9 Zusammenfassung

74 74 Objektorientierung Grundideen ObjektNachrichtBeziehungKlasse Modellierungssprache: UML Implementierungssprache: Delphi, Java,... Grund- konzepte

75 75 Idee: Objekt als Systemkomponente Ein Objekt ist eine aktive und autonome Programmeinheit, das für bestimmte Aufgaben zuständig ist und diese in eigener Verantwortung erledigt. Durch Nachrichten können Objekte andere Objekte zur Erledigung von (Teil)Aufgaben auffordern und somit gemeinsam die Systemaktivitäten erzeugen.

76 76 Literaturhinweise Es gibt eine Vielzahl von fachwissenschaftlichen Darstellungen zur objektorientierten Modellierung und Programmierung. Hier wurden folgende Lehrwerke benutzt: - D. J. Barnes, M. Kölling: Objektorientierte Programmierung mit Java. Pearson - Studium Helmut Balzert: Lehrbuch Grundlagen der Informatik. Spektrum Ak. Verlag Bernd Oestereich: Objektorientierte Softwareentwicklung. Oldenbourg Dagegen gibt es nur wenige Schulbücher, die systematisch in die objektorientierte Programmierung einführen, z. B.: - Siegfried Spolwig: Objektorientierung im Informatikunterricht. Dümmler-Verlag P. Damann, J. Wemßen: Objektorientierte Programmierung mit Delphi, Band 2. Klett-Verlag Viele interessante Artikel mit Unterrichtsvorschlägen bzw. fachdidaktischen Auseinandersetzungen findet man in der Zeitschrift LOG IN. Das Themenheft 128/129 ist speziell dem Thema Objektorientiertes Modellieren und Programmieren gewidmet....

77 77 Literaturhinweise Im Internet findet man ebenfalls sehr viele schulgerechte Darstellungen der objektorientierten Modellierung und Programmierung, z. B: Die AG-Informatik des LMZ in RLP stellt u. a. auch Fortbildungsmaterialien zu diesem Thema bereit. Auf der Homepage des HSG in Kaiserslautern findet man Unterrichtsmaterialien und Links zu weiteren interessanten Seiten....


Herunterladen ppt "Grundkonzepte der objektorientierten Programmierung Teil 2 Klaus Becker 2006."

Ähnliche Präsentationen


Google-Anzeigen