Objektorientierte Programmierung OOP



Ähnliche Dokumente
Objektorientierte Programmierung OOP

Objektorientierte Programmierung

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

Objektorientierte Programmierung für Anfänger am Beispiel PHP

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

Java: Vererbung. Teil 3: super()

Programmieren in Java

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

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

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

Vorkurs C++ Programmierung

Objektorientiertes JavaScript

Objektorientierte Programmierung

3. Konzepte der objektorientierten Programmierung

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

Vererbung & Schnittstellen in C#

Informatik für Schüler, Foliensatz 21 Objektorientierte Programmierung

Vorkurs Informatik: Erste Schritte der Programmierung mit C++

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

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X

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

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

Objektorientierte Programmierung. Kapitel 12: Interfaces

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

Objektorientierte Programmierung

Kompetent objektorientiert programmieren

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

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

5. Abstrakte Klassen

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

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

Softwaretechnik (Allgemeine Informatik) Überblick

PYTHON. 06 Objektorientierung II

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Grundlagen von Python

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

Objektorientierte Konzepte und Notation in UML. Objekt Klasse Attribut Operation

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

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

Prinzipien Objektorientierter Programmierung

OO Softwareentwicklung

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (OOP) VERERBUNG

Übungen zur Softwaretechnik

Computeranwendung und Programmierung (CuP)

Objektorientierte Programmiersprachen

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

3 Objektorientierte Konzepte in Java

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

Java Kurs für Anfänger Einheit 5 Methoden

Klassendiagramm. (class diagram)

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

Objektorientierung: Klassen und Objekte

Programmieren Lernen mit BYOB. Gerald Futschek 5. November 2012

Unified Modeling Language (UML)

Javakurs 2013 Objektorientierung

Einführung in Eclipse und Java

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

GetName(), GetName(), GetGeschlecht() und AelterWerden().

RDF und RDF Schema. Einführung in die Problematik Von HTML über XML zu RDF

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Grundlagen der Informatik für Ingenieure I

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Programmieren Tutorium

Klassenbeziehungen & Vererbung

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

Objektbasierte Entwicklung

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

Einführung in die Java- Programmierung

Kapitel 6. Vererbung

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

4. AuD Tafelübung T-C3

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Landes-Arbeits-Gemeinschaft Gemeinsam Leben Gemeinsam Lernen Rheinland-Pfalz e.v.

SDD System Design Document

Informatik für Schüler, Foliensatz 23 Konstruktor, String-Methode und Heldenklassse

SWE5 Übungen zu Software-Engineering

Kapitel 6. Vererbung

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

BEISPIELKLAUSUR Softwareentwicklung:

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Software Engineering Klassendiagramme Assoziationen

Kapitel 6. Vererbung

1.1 Einführung 11. Grundbegriffe der objektorientierten Softwareentwicklung

teischl.com Software Design & Services e.u. office@teischl.com

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords

5.5.8 Öffentliche und private Eigenschaften

Java Einführung Abstrakte Klassen und Interfaces

Java lernen mit BlueJ

Übung 1. Ziel: Statisches Modell (Klassendiagramm) aus allgemeiner Beschreibung erstellen.

Einführung in die Programmierung

3 Objektorientierte Konzepte in Java

Was meinen die Leute eigentlich mit: Grexit?

Professionelle Seminare im Bereich MS-Office

Transkript:

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013

Objektorientierte Programmierung OOP Objektorientierte Programmierung

Objektorientierte Programmierung OOP Übersicht 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? Übersicht 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 (Programmierstil) Art und Weise an ein Problem heranzugehen, es zu modellieren und somit auch zu programmieren. bisher: Prozedurale Programmierung Zerlegung in Variablen, Datenstrukturen und Funktionen Funktionen operieren direkt auf Datenstrukturen Objektorientierung: Beschreibung eines Systems anhand des Zusammenspiels kooperierender Objekte

Objektorientierte Programmierung OOP > Was ist das?

Objektorientierte Programmierung OOP > Was ist das?

Objektorientierte Programmierung OOP > Wie geht das? Ü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? Objekte sind überall werden von uns als solche wahrgenommen Zustand Verhalten reale Welt OO-Programmierung Attributwerte Methoden

Objektorientierte Programmierung OOP > Wie geht das? Objekte in OOP Zustand gespeichert in Attributwerten Verhalten 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 können. (Datenkapselung)

Objektorientierte Programmierung OOP > Wie geht das? Klassen und Objekte (1) Klasse Bauplan für Objekt Idee der Objekte Definition aller Attribute und Methoden Klasse allein macht noch nichts Objekt ist konkretes Element/Instanz der Klasse

Objektorientierte Programmierung OOP > Wie geht das? Klassen und Objekte(2) Klasse Kuh Name Geburtsdatum Milchleistung Objekt Kuh Elsa Euter 27.März 2009 34 l/tag

Objektorientierte Programmierung OOP > Wie geht das? Klassenhierarchie Verschiedene Arten von Objekten haben häufig Gemeinsamkeiten ist ein -Beziehung Beispiel: Superklasse Elternklasse Oberklasse Basisklasse Subklasse Kindklasse Unterklasse abgeleitete Klasse

Objektorientierte Programmierung OOP > Wie geht das? Vererbung 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? abstrakte Klasse enthält nur leere Methoden kann keine Instanz erzeugen dient zur Zusammenfassung ähnlicher Klassen definiert gemeinsame Attribut- und Methodennamen zwingt alle Kindklassen Attribute und Methoden mit entsprechendem Namen zu haben

Objektorientierte Programmierung OOP > Warum gibt es das? Übersicht 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 größere Projekte Modularität

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). 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 längere Laufzeit

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

Objektorientierte Programmierung OOP > Wie geht das in Python? Prozedural Objektorientiert prozedurale Programmierung Ansammlung von Variablen, Datenstrukturen und Funktionen, bzw. Unterprogrammen. Prozeduren oder Funktionen operieren direkt auf Datenstrukturen Funktionen und Daten haben keinen Zusammenhalt objektorientierte Programmierung Datentypen (Klassen), welche Verhalten (Methoden) mit Daten (Attribute) verbinden. Instanz einer Klassen (Objekt) operiert auf seiner eigenen Datenstruktur Funktionen (Methoden) und Daten (Attribute) sind fest miteinander verbunden.