Objektorientierte Programmierung Teil 1: Einführung



Ähnliche Dokumente
7. Klassenmethoden Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Programmiertechnik Objektorientierung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung

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

Arten von Klassen-Beziehungen

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

Angewandte Mathematik und Programmierung

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1)

Programmierung Nachklausurtutorium

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

Objektorientierte Programmierung (OOP)

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

Algorithmen und Datenstrukturen

Informationsverarbeitung im Bauwesen

Java für Bauingenieure

Einstieg in die Informatik mit Java

Objektorientierte Konzepte

4. Objektorientierte Programmierung mit C++

Einstieg in die Informatik mit Java

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Javakurs für Anfänger

Repetitorium Informatik (Java)

Java Einführung Klassendefinitionen

7. Übung Informatik II - Objektorientierte Programmierung

Einstieg in die Informatik mit Java

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

Objektorientierte Programmierung und Klassen

5.5.8 Öffentliche und private Eigenschaften

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

Implementieren von Klassen

Prinzipien der objektorientierten Programmierung (OOP)

Klassenvariablen, Klassenmethoden

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

Kapitel 4: Klassen und Unterklassen

Praxis der Programmierung

Kapitel

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

Programmieren in Java

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

4. Objektorientierte Programmierung mit C++

Arten von Klassen-Beziehungen

Vererbung und Polymorphie

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

OO Softwareentwicklung

Tag 7 Repetitorium Informatik (Java)

Einstieg in die Informatik mit Java

Klassen. C++ Übung am 02. Juni 2016

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Java als erste Programmiersprache

Einführung in die Objektorientierung (OO)

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Einführung in die Informatik

Programmierparadigmen

Einführung in C++ Vererbung und Polymorphismus

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Faustregeln zu Zusicherungen

Javakurs für Anfänger

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Probeklausur: Programmierung WS04/05

Einstieg in die Informatik mit Java

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Geschachtelte Klassen

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Vorkurs C++ Programmierung

Abgabe: keine Pflichtabgabe (vor 12 Uhr) Aufgabe 10.1 (P) Vererbung Gegeben seien folgende Java-Klassen:

Objektorientierte Programmierung mit C++ SS 2007

Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Programmieren II Klassen. Zur Erinnerung.

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

Javakurs für Anfänger

Propädeutikum Programmierung in der Bioinformatik

Transkript:

Objektorientierte Programmierung Teil 1: Einführung Prof. Dr. Schoop FHT Esslingen, Sommersemester 2005 Agenda Beispielszenario Eigenschaften des objektorientierten Ansatzes Konzepte des objektorientierten Programmierens 1.2

Agenda Beispielszenario Eigenschaften des objektorientierten Ansatzes Konzepte des objektorientierten Programmierens 1.3 Beispielszenario: Hochregallager (Quelle: Industriebau 2/04, www.viastore.de) 1.4

Beispielszenario: Hochregallager Ein Unternehmen erhält den Auftrag für einen Automobilkonzern die Steuerung für ein vollautomatisches Hochregallager zu implementieren. Nebenbedingungen: Es soll optimal gelagert werden. D.h. es muss so viel wie möglich in das Lager hineinpassen und die durchschnittliche Zeit, ein Objekt aus dem Lager zu holen, soll minimal sein. Es gibt Regale für Paletten und Regale für Behälter. Behälter kann man in einem Regalfach stapeln (maximal drei übereinander). Schwere Objekte müssen in die untere Hälfte des Regals. 1.5 Entwurf Datenmodell des Entwurfs muss beinhalten Regal Regaltyp (Paletten oder Behälter) untere Hälfte, obere Hälfte des Regals Gewicht des Objektes Regalfach voll/leer Entfernung des Regalfaches (horizontal, vertikal) Paletten Behälter stapelbar oder nicht Lagerort eines Objektes 1.6

Konzeptuelles Datenmodell Lagerobjekt Gewicht t Palette Behälter Position 1 n p_lagert_in Entfernung_v b_lagert_in 1 Fach t n 1 1 Palettenregalfach Behälterregalfach ist_fach_von Stapelhöhe Regal Entfernung_h 1.7 Relationales Datenmodell 1.8

Trennung von Daten und Funktionen Daten Funktionen f1( ) f2( ) f3( ) 1.9 Objektorientiertes Datenmodell Regal Horiz_Entf: real Regalfach Fach-Nr: integer Vert_Entf: real Belegt: bool Lagerobjekt Gewicht: real Fach-Nr: integer Behälterfach Stapelhöhe: integer Behälter Stapelpos:integer getlagerort(); Palette getlagerort(); 1.10

Agenda Beispielszenario Eigenschaften des objektorientierten Ansatzes Konzepte des objektorientierten Programmierens 1.11 Eigenschaften des OO-Ansatzes Kapselung Objekte kapseln die dazugehörigen Eigenschaften gegenüber der Umwelt. Identität Alle Objekte besitzen eine eigene Identität, auch wenn sie nach außen gleich erscheinen. Klassifikation / Abstraktion Ähnliche Objekte können zu Gruppen zusammengefasst werden und ein Muster (Klasse) steht für die gemeinsamen Eigenschaften dieser Objekte. 1.12

Eigenschaften des OO-Ansatzes Vererbung / Hierarchisierung Objekt-Muster (Klassen) können ihre Eigenschaften an spezifischere Objekt-Muster vererben. Es entsteht eine Hierarchie von Objekt-Mustern, die eine verschieden tiefe Abstraktion widerspiegeln. Polymorphismus Eine Funktion kann mehrmals implementiert sein. Beim Funktionsaufruf wird die passende Funktion angewählt und ausgeführt. ( Kapselung, Abstrahierung) 1.13 Vorteile des OOP-Ansatzes kein Bruch zwischen Modellierung und Implementierung Nachvollziehbarkeit der Implementierung Programmstabilität durch Kapselung Wiederverwertbarkeit 1.14

Agenda Beispielszenario Eigenschaften des objektorientierten Ansatzes Konzepte des objektorientierten Programmierens 1.15 Konzepte des OOP Kapselung Klasse Objekt (Instanz, Exemplar) Methoden (Funktionen) Botschaften (Funktionsaufrufe) Vererbung 1.16

Klasse Kapselung (information hiding, Geheimnisprinzip) von Daten und Methoden Klasse: Lagerobjekt Lagerobjekt Name getregal() int Regal setregal(x) Gewicht: real Fach-Nr: integer getregal() setregal() Daten Methoden 1.17 Klasse in C++ class Lagerobjekt { float Gewicht; int Regal; int Fach; public: int getregal() { return Regal; } void setregal(int i) { Regal = i; } }; // Daten // Daten // Daten // Methode // Methode 1.18

1 Objekt (Instanz, Exemplar) Objekt = Behältnis für Daten und Methoden (Funktionen) Klasse Objekte Lagerobjekt Gewicht: real Fach-Nr: integer getregal() setregal() Lagerobjekt: o1 Gewicht = 70 Regal-Nr = 4 Fach-Nr = 12 Lagerobjekt: o2 Gewicht = 120 Regal-Nr = 2 Fach-Nr = 7 1.19 Objekt in C++ void main() {... Lagerobjekt o1, o2;... o1.setregal(4); o2.setregal(2);... } 1.20

1 Klassenvariablen und -methoden Instanzvariablen halten die Daten eines Objektes Instanzmethoden sind Funktionen, um Instanzvariablen zu manipulieren. Klassenvariablen sind Variablen eine Klasse; sie werde nicht vererbt Klassenmethoden sind Funktionen, um Klassenvariablen zu manipulieren. Lagerobjekt Gewicht: real Fach-Nr: integer getanzahl() 1.21 Klassenariablen und Methoden in C++ class Lagerobjekt { float Gewicht; int Regal; int Fach; static int Anzahl; public: static int getanzahl() { return Anzahl; } }; cout << "Anzahl: " << Lagerobjekt::getAnzahl << endl; 1.22

1 Vererbung Behälter Stapelpos:integer getlagerort(); Lagerobjekt Gewicht: float Fach-Nr: integer Palette getlagerort(); class Lagerobjekt { }; class Behaelter : public Lagerobjekt { int Stapelpos; public: void setstapelpos(int i) { }; int getlagerort() { }; } 1.23 Zusammenfassung Die objektorientierte Programmierung setzt den Ansatz des objektorientierten Modellierens fort. Bruch zwischen Modellierung und Implementierung wird vermieden. Objekte kapseln Daten und Funktionen und fördern dadurch Nachvollziehbarkeit der Implementierung Programmstabilität Wiederverwertbarkeit 1.24