OO Softwareentwicklung



Ähnliche Dokumente
Prinzipien Objektorientierter Programmierung

Objektorientierte Programmierung. Kapitel 12: Interfaces

Klassenbeziehungen & Vererbung

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

Objektorientierte Programmierung OOP

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

Client-Server Beziehungen

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

3 Objektorientierte Konzepte in Java

Vorkurs C++ Programmierung

UML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung

Kapitel 6. Vererbung

3. Konzepte der objektorientierten Programmierung

Vererbung & Schnittstellen in C#

Java: Vererbung. Teil 3: super()

Klassendiagramm. (class diagram)

Programmieren in Java

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

Typumwandlungen bei Referenztypen

13. Tutorium zu Programmieren

Kapitel 4. Mehrfachvererbung. Beispiel 1: typische Diamant Struktur. Person. Hiwi

Objektorientierte Programmierung

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Objektorientierte Programmierung

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

5.6 Vererbung. Vererbung

Kapitel 6. Vererbung

Objektorientiertes JavaScript

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Programmieren - Vererbung & Polymorphie

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

Einführung in die Programmierung mit Java. Hörsaalübung

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Kapitel 6. Vererbung

Factory Method (Virtual Constructor)

Innere Klassen in Java

How-to: Webserver NAT. Securepoint Security System Version 2007nx

5. Abstrakte Klassen

Objektorientierte Programmiersprachen

4. AuD Tafelübung T-C3

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Objektorientierte Programmierung

Client-Server-Beziehungen

Grundkonstrukte der Objektorientierung in Java, C# und C++

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierung: Klassen und Objekte

C/C++-Programmierung

Einführung in die Java- Programmierung

Ersetzbarkeit, Client-Server Beziehungen

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Kapselung und Methodenbindung: Javas Designprobleme und ihre Korrektur. Dipl.-Inform. Peter Müller Prof. Arnd Poetzsch-Heffter Fernuniversität Hagen

Abschnitt 9: Schnittstellen: Interfaces

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Grundlagen der Softwaretechnik

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Algorithmen und Datenstrukturen

Java lernen mit BlueJ

Einführung in die Programmierung

BEISPIELKLAUSUR Softwareentwicklung:

Einführung in die Programmierung für NF

Javakurs 2013 Objektorientierung

1. Java ist Stammbaum der Programmiersprachen 3. Die "Softwarekrise"

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Assoziation und Aggregation

Objektorientierung: Klassen und Objekte

Grundlagen von Python

Java Einführung Packages

Whitebox-Vererbung vs. Blackbox-Vererbung. - Begriffsbestimmung - Vererbung öffentliche Vererbung private Vererbung - Zusammenfassung

Kapitel 12: Übersetzung objektorienter Konzepte

Programmieren Tutorium

Übungen zur Softwaretechnik

Klausur zur Einführung in die objektorientierte Programmierung mit Java

SEP 114. Design by Contract

Java Einführung Methoden in Klassen

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Datenbankmodelle 1. Das Entity-Relationship-Modell

Vorlesung "Software-Engineering"

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Softwaretechnik (Allgemeine Informatik) Überblick

Use Cases. Use Cases

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Java Einführung Abstrakte Klassen und Interfaces

Formale Spezialisierungstechniken. am Beispiel des binären Baums. Hybride Programmiersprachen Daniel Krompass Berlin, 2009

Ontologien. Ontologien (aus ISM Kap. 3. Wissensrepräsentation für Texte) Ontologien: Konstrukte. Konzepte/Klassen

Ontologien (aus ISM Kap. 3. Wissensrepräsentation für Texte) Norbert Fuhr

Transkript:

OO Softwareentwicklung Objektorientierung Prof. Dr. Bernhard Schiefer 1 OO als Ansatz zur Verbesserung der Software-Qualität Modellierung der Welt als selbständig agierende Objekte. Gemeinsame Beschreibung von Objekte gleichen Verhaltens durch "Klassen". Syntaktische Unterstützung von Moduln Trennung Schnittstelle von Implementierung. Kapselung von Daten und Funktionen. Information hiding Lösung des Offen/Geschlossen Problems durch Vererbung und Polymorphie. Prof. Dr. Bernhard Schiefer 2

Objekte und Klassen Objekt Alles dem ein Name gegeben werden kann Instanz der Implementierung eines ADT Klasse Implementierung eines ADT Beschreibt das Verhalten einer Menge gleitiger Objekte class Pkw int void kennzeichen[8]; max_geschw; nächste_ asu[5]; print (void); Prof. Dr. Bernhard Schiefer 3 void main (void) Pkw *mikes_car = new Pkw ("ZW-X1",156, "05/99"); Pkw *susis_car = new Pkw ("HOM-P5",187, "01/99"); } Eigenschaften - Features Attribut Daten eines Objektes Andere Begriffe: Instanzvariable, Komponente Methode Operationen, die auf ein Objekt angewandt werden können Andere Begriffe:Operation, Funktion Eigenschaft Attribute und Methoden Andere Begriffe:Feature Prof. Dr. Bernhard Schiefer 4

Vererbung Einfache Vererbung Mechanismus, durch den ein Objekt einer Klasse (Unterklasse) Zugriffe auf Features einer anderen Klasse (Oberklasse) bekommt. Ziel: Die Objekte der Unterklasse können überall dort verwendet werden, wo Objekte der Oberklasse erwartet werden. Mehrfachvererbung Eine Klasse erbt von mehreren Oberklassen. Prof. Dr. Bernhard Schiefer 5 Vererbung - Beispiel class Fahrzeug int void kennzeichen[8]; max_geschw; nächste_ asu[5]; print (void); class Pkw : public Fahrzeug bool cabrio; bool notersatzrad; bool seitenairbag; class Lkw : public Fahrzeug int anzahl_achsen; int lade_fläche; bool schlafkabine; Prof. Dr. Bernhard Schiefer 6

Mehrfachvererbung - Beispiel class Fahrzeug int void kennzeichen[8]; max_geschw; nächste_ asu[5]; print (void); class Boot int max_geschw_knoten; int wasserverdrängung; class Amphibienfahrzeug : public Fahrzeug, public Boot Prof. Dr. Bernhard Schiefer 7 Polymorphie Wesen der Polymorphie Eine Variable kann Werte verschiedener Klassen annehmen. Zulässig sind beim oop idr die Objekte der Unterklassen. Unterscheidung zwischen formalem (statischem) und aktuellem (dynamischem) Typ. Dynamisches Binden Auswahl der tatsächlich auszuführenden Methode zur Laufzeit. Welche Methode ausgeführt wird hängt vom aktuellen Typ ab. Prof. Dr. Bernhard Schiefer 8

Überschreiben/Überladen Bei der Vererbung können Methoden in der Unterklasse neu definiert werden. Überschreiben Innerhalb einer Klasse können Methoden mit gleichem Namen aber unterschiedlichen Parametertypen definiert werden. Überladen Prof. Dr. Bernhard Schiefer 9 Abstrakte Klassen Klassen, von denen keine Objekte gebildet werden heißen "abstrakt". Abstrakte Klassen spiegeln häufig abstrakte Konzepte wieder. Bei abstrakten Klassen müssen nicht alle Methoden definiert sein. Klassen, die instantiiert werden können heißen "konkret". Prof. Dr. Bernhard Schiefer 10

Gründe für den Einsatz von Vererbung Umsetzung einer Generalisierungs- /Spezialisierungsbeziehung (IS_A) Beispiel: Student -> HiWi Wiederverwendung von Klassenimplementierungen Reduktion von Tippaufwand Beispiel: IntArray -> IntVektor Prof. Dr. Bernhard Schiefer 11 Generische Klassen Problem: Viele Klassendefinitionen unterscheiden sich nur in den Parametertypen. Beispiele: IntListe, IntSet, KontoListe, KundenListe Lösung: Schablonen zur Erzeugung von Klassen. Klassen, die über Typparameter verfügen. Beispiel: Liste<Konto>, Liste<Kunde>,... Prof. Dr. Bernhard Schiefer 12