Objektorientierte Programmierung Was ist das eigentlich ?

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

der Universität Oldenburg
Objektorientierte Programmierung
Imperative Programmierung
der Universität Oldenburg
Objektorientierung Auffassung der Software als eine Sammlung
Objektorientierte Programmierung
Zur Rolle der Sprache bei der Modellierung von Datenbanken
Konzepte objektorientierter Systeme
Einführung in die Programmierung Zusammenfassung
Kapitel 4 Datenstrukturen
Objektorientierte Programmierung Definition von Klassen
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Objekte und Arbeitsspeicher
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 4 Vererbung Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Programmieren mit JAVA
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Prüfkriterien für objektorientierte Systeme
Objektorientierte Programmierung
Datenmodellierung - Aufbau einer Datenbank -
C++ Vererbung und Polymorphie
Abstrakte Klassen, Interface
DVG Klassen und Objekte
Bestimmung des ggT zweier Zahlen
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Objektorientierte Modellierung
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Einführung in die Programmierung
Ham EST Das Schwein Schmatz.. Fressen Beginnen wir.... mit einer Geschichte:
Objektorientierte Programmierung
Klassendefinitionen in Java
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Seminar Softwareentwicklung Programmierstil Helmut Schmidauer
Datenbanken Datenstrukturen.
UML-Kurzüberblick Peter Brusten.
2.4 Rekursion Klassifikation und Beispiele
Programmiersprachen Proseminar Grundlagen wissenschaftlichen Arbeitens
Objektorientierte Programmierung
Daten- und Ablaufmodellierung
Objektorientierung.
Objektorientierte Modellierung mit UML
Klassen und Klassenstruktur
Software Engineering Grundlagen
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
1 VeranstaltungThemaVortragende AINF-Lehrgang 2003 Titel: Grundlagen der Objektorientierten Programmierung Name: Gruppe Programmierung.
Geoinformation I Lutz Plümer
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Objektorientierte (OO) Programmierung
Java Programme nur ein bisschen objektorientiert.
Tutorium Software-Engineering SS14 Florian Manghofer.
© Tenbusch Oberstufenzentrum Informations- und Medizintechnik Objektorientierte Programmierung mit Java.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
 Präsentation transkript:

Objektorientierte Programmierung Was ist das eigentlich ?

© Überblick Hintergrund Systemtheorie Komponenten, Attribute, Aktivitäten OO-Konzepte Objekte Kapselung Vererbung Polymorphie in JAVA

© „klassische“ Modularisierung Strukturierte Programmierung Funktionen Module Header Dateien, Datenstrukturen, Funktionsprototypen Funktionsorientierte Sicht

© Top Down Definition eines Problems durch Hierarchisierung Hauptfunktion Zerlegung in Module Mit Datenstrukturen Zerlegung in Funktionen Trennung von Daten und Funktionen (auch konzeptionell bei Entwicklung)

© Probleme Versagt bei großen Problemen (etwa > Zeilen) „Softwarekrise“ 70‘er Jahre Wiederverwendung schwierig, da: Untergeordnete Funktionen speziell für Verwendung durch andere definiert Querverbindungen durch Datenstrukturen

© Noch mehr Probleme Realität besteht nicht aus Datenstrukturen und Funktionen, sondern aus: Dingen (Auto, Auftrag, Artikel,...) Personen (Kunde,...) Konzepten (Vertrag, Buchung,...) Abbildung ?

© Abhilfe Zusammenfassung von Daten und Funktionen zu Objekten Objekte sind eigenständig, unabhängig Deshalb Übersichtlicher Wiederverwendbar Hintergrund: Systemtheorie

© System (theorie) Menge von Komponenten von der Umgebung abgegrenzt durch Beziehungen miteinander verbunden offenes/geschlossenes System Beispiel : menschl. Körper Komponenten = Organe verbunden durch Nerven, Gefäße,... abgegrenzt durch Haut Je nach Sichtweise abgeschlossen oder offen Beispiel: Unternehmen Komponenten = Produkte, Maschinen, Mitarbeiter,... Herstellungsbeziehungen, Materialflüsse

© Komponenten differenzierbare Objekte “reale” Systeme: Komponenten physisch abgegrenzt (Mensch) “formale” Systeme: Komponenten immateriell (Mathematik: Zahlen, Sätze, Definitionen,...) (Computerprogramm: Module, Prozeduren, Variablen) soziotechnische Systeme: Komponenten sind Menschen und Maschinen (Unternehmen) formale Systeme als Modell für reale Systeme (Sprache, Mathematik ?)

© Modell Formales System zur Beschreibung eines Ausschnitts/einer Auswahl an Eigenschaften eines realen Systems (Beispiel: (Festkörper-) Physik) Abbildung der Realität durch Abstraktion und Vereinfachung Datenmodell : Abbildung von Unternehmesstrukturen Nur ein Teil der Informationen wird erfaßt, z.B. bildet ein Datensatz einen Mitarbeiter ab Problem: Gemeinsames Modell (Was passiert, wenn der Softwareentwickler und der Kunde ein unterschiedliches Modell verwenden ?)

© Struktur Komponente kann wiederum als System betrachtet werden--> Reduktion der Komplexität Mensch GehirnHerzLunge l. Ventrikelr. Ventrikel Muskelfaser Zelle Zellmembran Kanal

© Beziehungen Austauschbeziehungen: Fluß von Material Energie Informationen Anordnungsbeziehungen über/unter, vor/nach, neben,... Wirkungsbeziehungen aktive Komponenten (Prozedur ändert Inhalt einer Variablen) passive Komponenen (Variable) vernetzte Systeme

© Systembeschreibung Attribute eine Eigenschaft beschreibendes Merkmal z.B. Komponente “Mitarbeiter” hat Attribut “Gehalt” stetig (Temperatur) oder diskret (Geschlecht) Veränderbarkeit (konstant, änderbar) Vorhersagbarkeit (deterministisch, stochastisch, zufällig) Aktivitäten: ändern den Zustand des Systems endogen/exogen zeitstetig/zeitdiskret Kopplung einfache Kopplung Rückkopplung lineare Systeme (u.a. keine Rückkopplungen)

© Was soll das alles ? Programmierung: Abbildung (eines Ausschnitts) der Realität Nur bestimmte Aspekte (Modellbildung) System besteht aus Komponenten (Objekten) mit Eigenschaften (Attributen) Aktivitäten (Methoden) Kopplungen (Assoziationen) Modellbildung Im Rahmen von Analyse und Entwurf hier nicht Thema Abbildung in Programmiersprache ?

© Objekte Attribute Methoden Werden in Klassen zusammengefaßt Kapselung (Sichtbarkeit von „außen“) Beziehungen (Assoziationen) Vererbung (Fahrzeug, PKW, Motorrad) Polymorphie

© OO Schlüsselkonzepte Kapselung Daten und Funktionen werden zusammengefaßt Daten und Algorithmen sind "von außen" nicht sichtbar Vererbung Eine Klasse kann von einer anderen "erben" Wiederverwendung/Spezialisierung Polymorphie Flexibilität in der Gestalt generische Programmierung

© Kapselung Von "außen" ist nur eine Schnittstelle sichtbar Interna (Algorithmus,...) können geändert werden public class StringList { private Vector Strings; public add(String aString) {...} public void first() {...} public String next() {...} public void delete() {...} public int size() {...} }

© Vererbung Klasse Fahrzeug Attribute Geschwindigkeit, Position,... Methoden Beschleunigen, bremsen,... Klasse LKW erbt von Fahrzeug Zusätzl. Attribute Zuladung,...

© Polymorphie Basisklasse Fahrzeug mit Methode fahren() abgeleitet LKW, PKW, Motorrad... Fahrzeug F; PKW P = new PKW(); F = P; F.fahren();... Vector V = new Vector(); V.add(new PKW()); V.add(new LKW());... for(int i=0;i<V.size();i++) ((Fahrzeug)V.elementAt(i)).fahren();