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

Ähnliche Dokumente
Geschachtelte Klassen

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

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

Objektorientierte Programmierung und Klassen

Repetitorium Informatik (Java)

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

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

Tag 7 Repetitorium Informatik (Java)

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

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Vererbung, Polymorphie

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object

5 Vererbung. Subklassen, Superklassen, Pakete Zugriffsrechte

Programmieren in Java

9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1

Programmieren in Java

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

Vererbung, Polymorphismus

Einführung in die Programmierung I. 10. Klassen und Objekte. Stefan Zimmer

Programmiertechnik Klassenvariablen & Instantiierung

Praxis der Programmierung

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

Einstieg in die Informatik mit Java

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Objektorientierte Programmierung OOP

Programmieren in Java

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

Programmiertechnik Objektorientierung

Geschachtelte Klassen

C++ - Objektorientierte Programmierung Polymorphie

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

Prinzipien der objektorientierten Programmierung (OOP)

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

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

Programmieren in Java

C++ - Objektorientierte Programmierung Vererbung

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

Objektorientierte Programmierung Studiengang Medieninformatik

Programmierung Nachklausurtutorium

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

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

Programmieren in Java

Einführung in die Programmierung I. 11. Vererbung. Stefan Zimmer

Fragen zur OOP in Java

Informatik II Prüfungsvorbereitungskurs

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Algorithmen und Datenstrukturen

Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen

3 Objektorientierte Konzepte in Java

OOP und Angewandte Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

Java für Bauingenieure

Prof. W. Henrich Seite 1

Java Einführung Vererbung und Polymorphie. Kapitel 13

Begriffe 1 (Wiederholung)

PYTHON. 06 Objektorientierung II

Einstieg in die Informatik mit Java

Tafelübung 07 Algorithmen und Datenstrukturen

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

JAVA 05: Objektorientierte Konzepte

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

Objektorientierte Programmierung

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

14. Java Klassen. Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung

Informatik II. Woche 13, Giuseppe Accaputo

Einführung in die Programmiersprache Java II

7. Übung Informatik II - Objektorientierte Programmierung

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch

Java Vererbung. Inhalt

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

Arten von Klassen-Beziehungen

Überschreiben von Methoden

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

Objektorientierte Programmierung Studiengang Medieninformatik

Einführung in C# Teil 3. Matthias Nübling

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

Grundkonzepte objektorientierter Programmierung -

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

Vorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3

Inhaltsverzeichnis. 4.9 Aufgaben... 63

2. Vererbung und Kapselung

Grundkonzepte Objektorientierter Programmierung

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

Programmiertechnik Objektorientierung, Teil 2

Java als erste Programmiersprache

1. Abstrakte Klassen

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17

Einführung in die Programmiersprache Java II

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

Propädeutikum Programmierung in der Bioinformatik

Teil VI. Objektorientierte Programmierung

Java Einführung Klassendefinitionen

Teil VI. Objektorientierte Programmierung. T. Neckel Einführung in die wissenschaftliche Programmierung IN8008 Wintersemester 2016/

Transkript:

Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4) Klassenvariablen 5) Manipulierbarkeit 6) Vererbung 7) Überschreiben 8) Überladen 9) Polymorphismus Organisatorisches I. Grundbegriffe - Objekte und Klassen Pausenzeiten: 15:30 16:00 Objekt Gegenstand, Person, Sachverhalt oder Ereignis der realen Welt 17:00 17:10 Ausarbeitung und Quelltexte: www.minet.uni-jena.de/content_page_508.html Kontakt: nhimmerlich@web.de besitzt: Zustand Verhalten Identität Attribute Methoden kommuniziert mit anderen Objekten Botschaften I. Grundbegriffe - Objekte und Klassen I. Grundbegriffe - Objektorientierte Konzepte Klasse beschreibt Struktur und Verhalten einer Menge gleichartiger Objekte konkretes Objekt ist Instanz einer Klasse 1

Klassendefinition: mit Schlüsselwort class Attribute: Variablendeklaration Methoden: Prozeduren / Funktionen Attribute und Methoden bilden ein Aggregat einzelne Komponenten nehmen Bezug aufeinander Beispiel: Konto Attribute: Kontonummer, Eigentümer, Kontostand, Kreditlimit, Zinssatz, Methoden: einzahlen, auszahlen, kontoauszug, verzinsen, überweisen, Attribute und Methoden bilden ein Aggregat einzelne Komponenten nehmen Bezug aufeinander Beispiel: Konto Objekt erzeugen: Variable deklarieren new-operator + Konstruktor Zugriff auf Attribute / Methoden: Punktnotation Referenz.Attribut Referenz.Methode() Klassendefinition: in einem Modul Attribute: Felder eines Recordtyp + Referenztyp Methoden: typgebundene Prozeduren Objekt erzeugen: Variable deklarieren new-operator Zugriff auf Attribute / Methoden: Punktnotation Referenz.Attribut Referenz.Methode() 2

Klassendefinition: in einer Unit Typdeklaration mit class Attribute: Variablen des Typs Methoden: Prozeduren / Funktionen des Typs gesonderte Implementierung Objekt erzeugen: Variable deklarieren create-methode Zugriff auf Attribute / Methoden: Punktnotation Referenz.Attribut Referenz.Methode() - Datenkapselung - Datenkapselung Aufbau des Objektes und Implementierung der Methoden verborgen Geheimnisprinzip (engl. Information Hiding) Wie kann die Komponente verwendet werden? statt Wie ist die Komponente realisiert? Zugriff auf gekapselte Attribute über spezielle Methoden get- und set-methoden bzw. properties Modifizierer für Attribute und Methoden get- und set-methoden Modifizierer: default = Paket public = Global private = Klasse protected = Subklassen - Datenkapselung - Datenkapselung mit Stern gekennzeichnete Komponenten werden exportiert get- und set-methoden als typgebundene Prozeduren Properties: repräsentieren gekapselte Attribute read-zweig write-zweig (optional) Definitionsbereiche: public = Global private = Unit protected = Subklassen 3

spezielle Methode aktiviert wenn ein neue Instanz gebildet wird stellt sicher, dass alle Objekte definierte Werte besitzen Methode ohne Rückgabetyp trägt Klassennamen Standardkonstruktor ohne Parameter Programmierer kann Objekterzeugung beeinflussen elegante Möglichkeit zur Initialisierung spezielle Default-Werte festlegen mehrere Konstruktoren mit unterschiedlicher Signatur nicht im Sprachkonzept enthalten 2 Möglichkeiten zur Nachbildung Schlüsselwort constructor Standardkonstruktor create Klassendefinition: mit Schlüsselwort class Konstruktor: Spezialmethode init Attribute: Variablen im Konstruktor Methoden: Funktionen mit Parameter self Objekt erzeugen: Klassenname als Funktionsaufruf init wird ausgeführt Zugriff auf Attribute / Methoden: Punktnotation Referenz.Attribut Referenz.Methode() Datenkapselung: exportiert alle Namen Konvention 4

- Klassen- und Instanzkomponenten - Klassen- und Instanzkomponenten instanzspezifische Variablen und Methoden gehören jeweils einer bestimmten Instanz der Klassen klassenspezifische Variablen und Methoden gehören der gesamten Klasse Klassenvariablen für alle Instanzen gleicher Wert Klassenmethoden für alle Instanzen gleiches Verhalten dürfen nicht auf instanzspezifische Komponenten zugreifen - Klassenkomponenten Instanzkomponenten: kein spezielle Kennzeichnung Instanz.Variable Instanz.Methode() Instanzkomponenten: Felder eines Record bzw. typgebundene Prozeduren Instanz.Variable Instanz.Methode() Klassenkomponenten: Schlüsselwort static Klasse.Variable Klasse.Methode() Klassenkomponenten: Modulvariablen bzw. ungebundene Prozeduren Modul.Variable Modul.Methode() - Klassenkomponenten Instanzkomponenten: Variablen und Methoden innerhalb der Klassendefinition Instanz.Variable Instanz.Methode() Instanzkomponenten: Variablen innerhalb init Instanz.Variable Klassenkomponenten: Unitvariablen bzw. Methoden mit class Unit.Variable Klasse.Methode() Klassenkomponenten: Variablen außerhalb init Klasse.Variable 5

- Manipulierbarkeit - Manipulierbarkeit Vergleich: Zuweisung: Parameter: - Manipulierbarkeit - Vererbung Generalisierung: Objekte mit gemeinsamen Eigenschaften zu einer allgemeineren Kategorie zusammengefasst Spezialisierung: Gruppe von Objekten durch Hinzufügen von Eigenschaften in Unterkategorien eingeteilt Vererbung: Mechanismus durch den Klassen Eigenschaften von übergeordneten Klassen übernehmen - Vererbung Klasse ableiten: Schlüsselwort extends und Name der Superklasse Geerbte Komponenten: mit public oder protected deklarierte Variablen und Methoden der Superklasse keine mit private gekennzeichneten Komponenten keine Konstruktoren 6

- Vererbung - Vererbung Klasse ableiten: Name der Superklasse in Record-Definition angeben Klasse ableiten: Name der Superklasse hinter Schlüsselwort class Geerbte Komponenten: mit * exportierten Variablen und Methoden der Superklasse Geerbte Komponenten: public- oder protected- Komponenten der Superklasse private-komponenten von Superklassen in der selben Unit - Vererbung - Überschreiben von Methoden Klasse ableiten: Name der Superklasse hinter Klassenname Geerbte Komponenten: alle Variablen und Methoden der Superklasse allgemeine Methode der Superklasse wird in der Subklasse durch speziellere Fassung ersetzt Überschreiben von Methoden: gleicher Name, Parameterliste, Rückgabetyp andere Anweisungen Änderung der Funktionalität 7

- Überschreiben von Methoden Überschreiben: für alle Methoden möglich mit final unterbinden verdeckte Komponenten: Schlüsselwort super Überschreiben: für alle Methoden möglich über Empfängerparameter an Subklasse binden verdeckte Komponenten: Pfeil ^ anhängen Überschreiben: für dynamische Methoden möglich mit dynamic erlauben mit override kennzeichnen verdeckte Komponenten: Schlüsselwort inherited - Überschreiben von Methoden - Überschreiben von Methoden Überschreiben: für alle Methoden möglich verdeckte Komponenten: Name der Superklasse 8

Methode einer Klasse wird in verschiedenen Varianten definiert Überladen von Methoden: gleicher Name unterschiedliche Parameterliste unabhängig vom Rückgabetyp vergleichbare Funktionalität 9

- Polymorphismus - Polymorphismus Polymorphie I: Fähigkeit von Variablen zur Laufzeit auf Objekte beliebigen Typs zu verweisen statischer Typ = Typ der Variable in Deklaration dynamischer Typ = Typ des Objektes zur Laufzeit Polymorphie II: Eigenschaft von Operationen sich in verschiedenen Klassen unterschiedlich zu verhalten Überschrieben & Überladen 10