Objektorientierte Programmierung OOP

Ähnliche Dokumente
Objektorientierte Programmierung OOP

Informatik I. 15. Objekt-orientierte Programmierung: Einstieg. 03. Dezember Albert-Ludwigs-Universität Freiburg. Informatik I.

Vorkurs Informatik: Erste Schritte der Programmierung mit C++

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Vererbung und Polymorphie

Beziehungen zwischen Objekten

10. Programmierungs-Phase: Objektorientierung Software Engineering

Prinzipien der objektorientierten Programmierung (OOP)

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Informationsverarbeitung im Bauwesen

Java für Bauingenieure

Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte

Objektorientierte Programmierung (OOP) mit Matlab - Ein Crashkurs

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Einstieg in die Informatik mit Java

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

Programmieren in Java

11 Vererbung und Klassenhierarchie

Programmieren 2 C++ Überblick

Java Vererbung. Inhalt

Begriffe 1 (Wiederholung)

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Einstieg in die Informatik mit Java

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

C++ - Objektorientierte Programmierung Vererbung

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Vererbung, Polymorphie

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

Grundkurs C++ Einführung

Einstieg in die Informatik mit Java

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen

Objektorientierte Programmierung und Klassen

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Objektorientierte Programmierung Studiengang Medieninformatik

Programmieren in Java

6. Globalübung (zu Übungsblatt 8)

11 Objektorientierte Programmierung, Teil 2

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Objektorientierte Modellierung (1)

Untertypen, Vererbung, Sichtbarkeit A01 OOP. Untertypen, Vererbung, Sichtbarkeit

3. Konzepte der objektorientierten Programmierung

Einführung in die Programmiersprache Java II

Repetitorium Informatik (Java)

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

7. Übung Informatik II - Objektorientierte Programmierung

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

Übungen Softwaretechnik I

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Programmierung und Angewandte Mathematik

Einstieg in die Informatik mit Java

Java Einführung Vererbung und Polymorphie. Kapitel 13

Einstieg in die Informatik mit Java

Entwurfsmuster (Design Patterns)

UML -Klassendiagramme

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

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

Java-Programmierung mit NetBeans

Teil 2: OOP und JAVA (Vorlesung 11)

11/2009 Bernhard Gangl. Steuerungen mit OOP entwickeln 11 / Themenübersicht. Übersicht und Begriffsklärung: Objektorientierte Programmierung

Angewandte Mathematik und Programmierung

Vererbung und Polymorphie

Modellierung und Programmierung 1

7. Zusammenfassung (1)

Javakurs für Anfänger

Programmierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck

Objektorientierte Programmierung Studiengang Medieninformatik

Geschachtelte Klassen

Einführung in die Programmierung

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Arten von Klassen-Beziehungen

4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:

Präsentation Interfaces

Objektorientierte Programmiersprachen

Objektorientierte Programmierung mit Python Objekt und Klassen

Java, OO und UML Fortsetzung

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen

Objektorientiertes Programmieren III

Java: Vererbung. Teil 1: Grundlagen, UML.

Einführung in die objektorientierte Programmierung

Vererbung. Was versteht man unter dem Begriff Vererbung?

Grundlagen der Informatik

3 Objektorientierte Konzepte in Java

Kapitel 6. Vererbung

Faustregeln zu Zusicherungen

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595

9. Vererbung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Transkript:

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel Alina Stürck WS2016/17 11. Oktober 2016

Objektorientierte Programmierung OOP 1 Was ist das? 2 Wie geht das? 3 Warum gibt es das? 4 Wie geht das in Python?

Objektorientierte Programmierung OOP > Was ist das? Was ist das? ein Programmierparadigma

Objektorientierte Programmierung OOP > Was ist das? Was ist das? ein Programmierparadigma (Programmierstil) Art und Weise ein Problem zu modellieren Beschreibung eines Systems anhand des Zusammenspiels kooperierender Objekte

Objektorientierte Programmierung OOP > Was ist das? Was sind Objekte? Objekte sind überall werden von uns als solche wahrgenommen Begriff eher unscharf kann auch abstrakter sein In der realen Welt Zustand Verhalten OO-Programmierung Attribute Methoden

Objektorientierte Programmierung OOP > Was ist das? Datenkapselung Zustand gespeichert in Attributwerten Verhalten festgelegt durch Methoden Interaktion mit anderen Objekten durch Methoden

Objektorientierte Programmierung OOP > Was ist das? Datenkapselung Zustand gespeichert in Attributwerten Verhalten festgelegt durch Methoden Interaktion mit anderen Objekten durch Methoden Zustand ist versteckt, nur über Methoden erreichbar Methoden definieren Schnittstelle, über die andere Objekte mit Objekt interagieren

Objektorientierte Programmierung OOP > Wie geht das? Überblick 1 Was ist das? 2 Wie geht das? 3 Warum gibt es das? 4 Wie geht das in Python?

Objektorientierte Programmierung OOP > Wie geht das? Klassen und Objekte Klasse definiert für eine Menge von Objekten deren Struktur (Attribute), Verhalten(Methoden) und Beziehungen Bauplan für Objekt Definition aller Attribute und Methoden Besitzt Mechanismus zur Erzeugung eines Objekts

Objektorientierte Programmierung OOP > Wie geht das? Klassen und Objekte Klasse definiert für eine Menge von Objekten deren Struktur (Attribute), Verhalten(Methoden) und Beziehungen Bauplan für Objekt Definition aller Attribute und Methoden Besitzt Mechanismus zur Erzeugung eines Objekts Klasse allein macht noch nichts

Objektorientierte Programmierung OOP > Wie geht das? Klassen und Objekte Klasse definiert für eine Menge von Objekten deren Struktur (Attribute), Verhalten(Methoden) und Beziehungen Bauplan für Objekt Definition aller Attribute und Methoden Besitzt Mechanismus zur Erzeugung eines Objekts Klasse allein macht noch nichts Objekt ist konkrete Ausprägung (Instanz) der Klasse Jedem Objekt ist genau eine Klasse zugeordnet

Objektorientierte Programmierung OOP > Wie geht das? Objekte der Klasse Kuh Klasse Kuh Objekt Kuh Elsa Name Elsa Geburtsdatum 01.05.2012 Milchleistung 20 Liter/Tag

Objektorientierte Programmierung OOP > Wie geht das? Klassenhierarchie Verschiedene Arten von Objekten haben haben Gemeinsamkeiten Zusammenfassung verschieder Klassen möglich ist ein -Beziehung

Objektorientierte Programmierung OOP > Wie geht das? Klassenhierarchie Verschiedene Arten von Objekten haben haben Gemeinsamkeiten Zusammenfassung verschieder Klassen möglich ist ein -Beziehung Beispiel:

Objektorientierte Programmierung OOP > Wie geht das? Klassenhierarchie Übergeordnete Klasse: Superklasse = Elternklasse = Oberklasse = Basisklasse Untergeordnete Klasse: Subklasse = Kindklasse = Unterklasse = abgeleitete Klasse

Objektorientierte Programmierung OOP > Wie geht das? Vererbung Umsetzung der Klassenhierarchie Kindklassen erben alle Attribute und Methoden von Elternklassen haben zusätzlich eigene Attribute und Methoden können Attribute und Methoden der Elternklasse überschreiben

Objektorientierte Programmierung OOP > Wie geht das? Vererbung Umsetzung der Klassenhierarchie Kindklassen erben alle Attribute und Methoden von Elternklassen haben zusätzlich eigene Attribute und Methoden können Attribute und Methoden der Elternklasse überschreiben

Objektorientierte Programmierung OOP > Warum gibt es das? Überblick 1 Was ist das? 2 Wie geht das? 3 Warum gibt es das? 4 Wie geht das in Python?

Objektorientierte Programmierung OOP > Warum gibt es das? Zunahme der Rechnerleistung größere Programme komplexere Software große Projekte Mehr Übersicht nötig Modularität (Aufteilung in kleinere Komponenten)

Objektorientierte Programmierung OOP > Warum gibt es das? Vorteile Abstraktion: Betrachtung der Objekte und ihrer Eigenschaften und Fähigkeiten, ohne Festlegung auf Implementierung

Objektorientierte Programmierung OOP > Warum gibt es das? Vorteile Abstraktion: Betrachtung der Objekte und ihrer Eigenschaften und Fähigkeiten, ohne Festlegung auf Implementierung Datenkapselung: Objekt interagiert nur über vordefinierte Methoden. Implementierung kann verändert werden, ohne dass andere Teile des Programms geändert werden müssen

Objektorientierte Programmierung OOP > Warum gibt es das? Vorteile Abstraktion: Betrachtung der Objekte und ihrer Eigenschaften und Fähigkeiten, ohne Festlegung auf Implementierung Datenkapselung: Objekt interagiert nur über vordefinierte Methoden. Implementierung kann verändert werden, ohne dass andere Teile des Programms geändert werden müssen Vererbung: klarere Struktur und weniger Redundanz

Objektorientierte Programmierung OOP > Warum gibt es das? Vorteile Abstraktion: Betrachtung der Objekte und ihrer Eigenschaften und Fähigkeiten, ohne Festlegung auf Implementierung Datenkapselung: Objekt interagiert nur über vordefinierte Methoden. Implementierung kann verändert werden, ohne dass andere Teile des Programms geändert werden müssen Vererbung: klarere Struktur und weniger Redundanz Wiederverwendbarkeit: Programme können einfacher erweitert und modifiziert werden. Klassen können auch in anderen Programmen verwendet werden.

Objektorientierte Programmierung OOP > Warum gibt es das? Nachteile Formulierung: natürliche Sprache hat keine feste Bindung von Substantiv (Objekt) und Verb (Methode).

Objektorientierte Programmierung OOP > Warum gibt es das? Nachteile Formulierung: natürliche Sprache hat keine feste Bindung von Substantiv (Objekt) und Verb (Methode). Klassenhierarchie: ist in der realen Welt nicht immer so klar (Kreis-Ellipse-Problem) Transparenz: Kontrollfluss nicht im Quelltext Laufzeit- und Energieeffizienz: OOP-Anwendungen benötigen häufig mehr Energie und langere Laufzeit

Objektorientierte Programmierung OOP > Wie geht das in Python? Überblick 1 Was ist das? 2 Wie geht das? 3 Warum gibt es das? 4 Wie geht das in Python?

Objektorientierte Programmierung OOP > Wie geht das in Python? Übersicht 1 Was ist das? 2 Wie geht das? 3 Warum gibt es das? 4 Wie geht das in Python?

Objektorientierte Programmierung OOP > Wie geht das in Python? Klassen in Python Klasse: class KlassenName: def method1(self, ): def method2(self, ): Konstruktor: erzeugt ein Objekt (Instanz) der Klasse def init (self, ):... Verwendung: obj1 = KlassenName( ) obj1.method1( )

Objektorientierte Programmierung OOP > Wie geht das in Python? Variablen/Attribute Klassenvariablen: wird von allen Instanzen einer Klasse geteilt mit <KlassenName>.<VariablenName> innerhalb und außerhalb der Klasse erreichbar Objektvariable: existiert allein für dieses Objekt (Instanz der Klasse) mit <ObjektName>.<VariablenName> innerhalb der Klasse erreichbar (evtl. auch außerhalb).

Objektorientierte Programmierung OOP > Wie geht das in Python? public, protected, private Name Bezeichnung Bedeutung name public sowohl innerhalb einer Klasse, als auch von außen les- und schreibbar name protected von außen les- und schreibbar, Attribute und Methoden sollten nicht benutzt werden name private von außen weder sichtbar, noch nutzbar

Objektorientierte Programmierung OOP > Wie geht das in Python? Beispiel