Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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.

Ähnliche Präsentationen


Präsentation zum Thema: "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."—  Präsentation transkript:

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

2 Matthias Spohrer · TU München Seite 2 Inhaltsübersicht Infos Klassen und Objekte, Methoden Generalisierung, Spezialisierung und Vererbung Abstrakte Klassen Nachbereitung mit Übung: Sortieralgorithmen Klausurbesprechung

3 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 3 Infos - Präsenztage Donnerstag, UhrHS 0670 Funktionale Modellierung Dienstag, UhrHS 1601 Funkt. Mod. & OOM Mittwoch, UhrHS 1601 OOM Montag, *15(?)-17 Uhr* HS 0220 Auf Wunsch, zur Klausur Donnerstag, UhrHS 0220 Klausur *ob und ab wann dieser Präsenztag stattfinden soll, werden wir jetzt gemeinsam ausmachen. Außerdem eine Abschlussveranstaltung im Juli.

4 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 4 Beispielberechnung Staatsexamen Klausur: Theoretische Info5 Klausur: DB, Betriebssysteme etc.4 mdl. Prüfung: Theoretische Info3 mdl. Prüfung: Spezialgebiet2 mdl. Prüfung: Fachdidaktik2 Schnitt 1. Staatsexamen:3,71 Schnitt 1. Staatsexamen:3,71 Bitte nicht verzweifeln oder aufhören! Durchhalten!!!!

5 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 5 Sonstiges / Infos / Aussprache Fragen zur Klausur? Fragen zum aktuellen Stoff?

6 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 6 Kleine Aufwärmübung 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)! o 2.b) Beweisen Sie: f(x,y,z) terminiert für alle x,y,z o mit x y!

7 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 7 Kleine Aufwärmübung Staatsexamen Herbst 1991, Aufgabe 4

8 Nachqualifizierungskurs für Informatiklehrkräfte Matthias 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 = 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!)

9 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 9 Rückblick Berechengenauigkeit Blatt 6a: Programmierung einer Potenzfunktion potenz: float x nat float Testen des Programms: 0.25^3 = 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)

10 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 10 OOM und OOP Stuhl von Frau Müller Stuhl von Herrn Huber Frau Müller

11 Nachqualifizierungskurs für Informatiklehrkräfte Matthias 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)

12 Nachqualifizierungskurs für Informatiklehrkräfte Matthias 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 Objekte werden mit ihrem Konstruktor erzeugt, dieser bedient sich dem Bauplan der zugehörigen Klasse - dazu später jedoch mehr.

13 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 13 Klassen mit Details Zusicherung Initialwert Attribut-Typ Parameter (Name: Typ = Initialwert)

14 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 14 Klassen mit Details

15 Nachqualifizierungskurs für Informatiklehrkräfte Matthias 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)

16 Nachqualifizierungskurs für Informatiklehrkräfte Matthias 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

17 Nachqualifizierungskurs für Informatiklehrkräfte Matthias 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

18 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 18 Bearbeiten Sie die Aufgabe 1!

19 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 19 Objektorientierte Softwareentwicklung Geschichte der Softwareentwicklung ist eine kontinuierliche Steigerung der Abstraktionen – von Bitmuster über Makrobefehle, Prozeduren, abstrakte Datentypen zu Objekten Objektorientierung als neue Denkweise Objektorientierung als neue DenkweiseSoftwareentwicklung: Kommunikation Experten im Software- entwicklungsteam Experten im Anwendungsbereich Softwareentwicklung ist NICHT in erster Linie eine technische Aufgabe, sie ist heute ein komplexer sozialer Prozess P. Brichzin

20 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 20 Objektorientierte Softwareentwicklung Modellierungstechniken mit einer einheitlichen Notation und Semantik Unified Modelling Language zur ObjektOrientiertenProgrammierung P. Brichzin

21 Nachqualifizierungskurs für Informatiklehrkräfte Matthias 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öglichkeit Die Modellierung liegt mehr im Problembereich, weniger im Lösungsbereich (z.B. Struktogramme sind schon sehr weit unten im Lösungsbereich) P. Brichzin

22 Nachqualifizierungskurs für Informatiklehrkräfte Matthias 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

23 Nachqualifizierungskurs für Informatiklehrkräfte Matthias 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

24 Nachqualifizierungskurs für Informatiklehrkräfte Matthias 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 { Stringname; Anschriftanschrift; Bonitaetint; public int bonitaetPruefen() {... } } P. Brichzin

25 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 25 Objektorientierte Softwareentwicklung Unterschiede zum alten Vorgehen 4.evolutionäre Entwicklung Ein 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

26 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 26 Bearbeiten Sie die Aufgabe 2!

27 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 27 Generalisierung/Spezialisierung Personal Beamte AngestellteArbeiter 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 Mehrfachvererbung Diese 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.

28 Nachqualifizierungskurs für Informatiklehrkräfte Matthias 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 UML Oberklasse Unterklasse1Unterklasse2 Implementierung in Java Änderung lediglich in der Klassendeklaration der Unterklasse(n) class extends {... }

29 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 29 Abstrakte Klassen I Generalisierungshierarchie: Subklassen haben gemeinsame Methoden Oft 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 Figur Es 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 besitzen berechne_umfang wird als abstrakte Methode definiert

30 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 30 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

31 Nachqualifizierungskurs für Informatiklehrkräfte Matthias 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 {... } Klassenname kursiv

32 Nachqualifizierungskurs für Informatiklehrkräfte Matthias 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

33 Nachqualifizierungskurs für Informatiklehrkräfte Matthias Spohrer · TU München Seite 33 Fragen ?


Herunterladen ppt "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."

Ähnliche Präsentationen


Google-Anzeigen