Seite 1. Gliederung und Einordnung. Wiederholung. Unter- und Oberklassen: Beispiel
|
|
- Minna Krüger
- vor 6 Jahren
- Abrufe
Transkript
1 Gliederung und Einordnung 1.Objektorientierte Programmierung mit Object Pascal (5. Studienbrief, Kapitel 5) Software-Bausteine am Beispiel der Delphi-Komponenten (5. Studienbrief, Kapitel 5) Datenbankprogrammierung: Prinzipien und Beispiele (5. Studienbrief, Kapitel 6) Einordnung, Ausblick, Klausurvorbereitung Wiederholung Klassen (type Klasse = class... end) umfassen Datenfelder(, Eigenschaften und) Methoden Methoden ähnlich zu Prozeduren und Funktionen lokal zu den Objekten einer Klasse Aufruf mit Objekt.Methode Objekte erzeugen: Variable vom Klassentyp (K.xyz) Konstruktor aufrufen: K.Create; Unterklasse (type Unterklasse = class (Oberklasse)... end) erbt alle Bestandteile der Oberklasse etnhält zusätzliche Deklarationen Unter- und Oberklassen: Beispiel type KFZ = class kennzeichen: String;... PKW = class(kfz) tueren: integer LKW = class(kfz) nutzlast: integer... var k: KFZ; p: PKW;... p := PKW.Create; p.kennzeichen := "DD-XX 1"; p.tueren := 5; k := p;... Zugriff auf k.kennzeichen... Jeder PKW ist ein KFZ: Die Zuweisung eines Objekts der Unterklasse an eine Variable der Oberklasse ist zulässig. Bei der Zuweisung gehen keinerlei Informationen verloren, das Objekt bleibt unverändert. Seite 1
2 Typanpassung type KFZ = class kennzeichen: String;... PKW = class(kfz) tueren: integer LKW = class(kfz) nutzlast: integer... var k: KFZ; p: PKW;... p := PKW.Create; p.kennzeichen := "DD-XX 1"; p.tueren := 5; k := p; Zugriff auf k.tueren... ->Fehlermeldung... Zugriff auf (k as PKW).tueren Der "as" Operator dient zur Typanpassung innerhalb von Klassenhierarchien. "k as PKW" ist vom Typ "PKW" Die Typanpassung kann fehlschlagen (Laufzeitfehler). Regeln zur Typanpassung Jedes Objekt hat immer eine eindeutige Klassenzugehörigkeit, die sich von der Erzeugung bis zur Löschung nicht ändert. Einer Variable von einem Klassentyp K können Objekte der Klasse K und jeder Unterklasse von K zugewiesen werden. "Typanpassung", "down-cast": Ein Objekt o1 von einer Klasse K1, das über eine Variable seiner Oberklasse K zugänglich ist, kann mit dem "as"-operator (o1 as K1) auch wie ein Objekt der Klasse K1 behandelt werden Klassentest: Ein Test, ob ein Objekt o einer Klasse K zur Unterklasse K1 gehört (und damit ob die Typanpassung auf K1 zulässig ist), ist mit "o is K1" möglich. TObject Alle Klassen in Object Pascal sind implizit von der Basisklasse TObject abgeleitet. Ungefähre Struktur: TObject = class constructor Create; // Speicherplatzreservierung // Festlegung der Adresse (Identität) procedure Free; //Aufruf von Destroy //falls Adresse nil destructor Destroy; virtual; Seite 2
3 Konstruktoren Möglichkeit 1: Standardkonstruktor (aus TObject) verwenden. var obj: K; obj := K.Create; eigene Initialisierungsprozeduren für Datenfelder ("Init") siehe Projekt OOP1 Möglichkeit 2: Eigener Konstruktor. type K = class(k0) var X, Y: integer; constructor Create(Xinit,Yinit: integer); constructor K.Create(Xinit,Yinit : integer); inherited Create; //Konstruktor aus K0 aufrufen X := Xinit; Y := Yinit; var obj: K; obj := K.Create(10,20); Destruktoren type K = class(k0) var X, Y: integer; constructor Create(Xinit,Yinit: integer);... destructor Destroy; override; Regeln für Destruktoren: Immer indirekt über Free aufrufen (vermeidet Laufzeitfehler) Im Rumpf immer als letzte Aktion Destruktor der Oberklasse aufrufen. destructor K.Destroy(Xinit,Yinit : integer);... inherited Destroy; Beispiel: Verschieben von Punkten procedure TForm1.OOP3Click(Sender: TObject); var P1,P2,P3: TPoint; ClearScreen; Canvas.TextOut(50,50,'Beispiel OOP3'); // Erzeugen der Objekte P1..P3 P1:=TPoint.Create; P2:=TPoint.Create; P3:=TPoint.Create; // Initialisierung und Darstellung der Objekte P1..P3 P1.Init(200,100,clRed); P1.Show; P2.Init(250,150,clGreen); P2.Show; P3.Init(300,200,clBlue); P3.Show; // Bewegen der Objekte P1..P3 P1.Move(250,100); P2.Move(300,150); P3.Move(350,200); P1.Free; P2.Free; P3.Free; Label1.Caption:='OOP3 beendet'; end {TForm1.OOP3Click}; Seite 3
4 Unterklasse für Rechtecke TRectangle= class(tpoint) B, H: integer; procedure Init(XInit,YInit,BInit,HInit:integer; Color:TColor); procedure Show; procedure Hide; procedure ExtendTo(P: TPoint); procedure SetColor(Color: TColor); end {TRectangle}; procedure TRectangle.Show; var R: TRect; with Form1.Canvas do R := Rect(X,Y,X+B,Y+H); Brush.Color := PColor; FillRect(R); end {TRectangle.Show}; //Hide analog "Missglücktes" Verschieben R1:=TRectangle.Create; R1.Init(200,100,50,50,clRed); R1.Show; P2:=TPoint.Create; P2.Init(400,200,clGreen); P2.Show; R1.ExtendTo(P2); R1.Show; R1.SetColor(clBlue); R1.Show; R1.Move(300,200); Frühe und späte Bindung Frühe Bindung: aufzurufende Methode bereits zur Übersetzungszeit bestimmt, abhängig von der Klassenzugehörigkeit des angesprochenen Objekts Späte Bindung: Wahl der aufzurufenden Methode von der erst zur Laufzeit bekannten Unterklasse abhängig Wichtig, wenn nur eine Oberklasse des zur Laufzeit angesprochenen Objekts bekannt ist Späte Bindung in Object Pascal: "virtuelle Methoden", Schlüsselworte virtual und dynamic (Unterschied zwischen virtual/dynamic nur in Optimierungen.) Deklaration von Methoden, die virtuelle Methoden (in Unterklassen) "überdefinieren": Schlüsselwort override Implementierung: Virtual Method Table (VMT) Seite 4
5 Polymorphie von Methoden (1) type KFZ = class kennzeichen: String;... procedure anmelden(k: KFZDaten); virtual; PKW = class(kfz) tueren: integer... procedure anmelden(k: KFZDaten); override; LKW = class(kfz) nutzlast: integer... procedure anmelden(k: KFZDaten); override; var k: KFZ; p: PKW;... p := PKW.Create;... p.kennzeichen := "DD-XX 1"; p.tueren := 5; k := p; k.anmelden(...); Polymorphie von Methoden (2) Polymorphie: gleicher Methodenname in Ober- und Unterklasse semantische Ähnlichkeit (!) der Methodenrümpfe dynamische Auswahl der Implementierung Prinzip: TObject Methoden- Vererbung KFZ PKW Operationen- Suche zur Laufzeit nach der speziellsten Version ("dynamisches Binden") Beispielprojekt OOP_DEMO2 TPoint= class(tlocation) PColor: TColor; procedure Init(XInit,YInit:integer; Color: TColor); procedure Show; virtual; procedure Hide; virtual; procedure SetColor(Color: TColor); procedure Copy(NewX,NewY: integer); procedure Move(NewX,NewY: integer); end {TPoint} ; TRectangle= class(tpoint) B, H: integer; procedure Init(XInit,YInit,BInit,HInit:integer; Color:TColor); procedure Show; override; procedure Hide; override; procedure ExtendTo(P: TPoint); end {TRectangle} ; // TCircle: analog Seite 5
6 Reagieren auf Mausaktionen (1) type TLocation= class... procedure MouseDown(XM,YM:integer); virtual; procedure MouseUp(XM,YM:integer); virtual; end {TLocation} ; TPoint= class(tlocation)... end {TPoint} ; TRectangle= class(tpoint)... procedure MouseDown(XM,YM:integer); override; procedure MouseUp(XM,YM:integer); override; end {TRectangle} ; procedure TLocation.MouseDown(XM,YM:integer); end {TLocation.MouseDown} ; procedure TLocation.MouseUp(XM,YM:integer); end {TLocation.MouseUp} ; Reagieren auf Mausaktionen (2) procedure TRectangle.MouseDown(XM,YM:integer); if (X<=XM) and (XM<=X+B) and (Y<=YM) and (YM<=Y+H) then SetColor(clBlack); Show; end {TRectangle.MouseDown} ; procedure TRectangle.MouseUp(XM,YM:integer); if PColor = clblack then Move(XM-(B div 2),YM-(H div 2)); end {TRectangle.MouseUp} ; Reagieren auf Mausaktionen (3) const MaxObj = 10; var ObjectRegister : array [1..MaxObj] of TLocation; NumRegObjects : integer = 0; procedure RegisterObject (o: TLocation); NumRegObjects:=NumRegObjects+1; ObjectRegister[NumRegObjects]:=o; end {RegisterObject} ; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var i:integer; for i:=1 to NumregObjects do ObjectRegister[i].MouseDown(X,Y); end {FormMouseDown} ; // MouseUp analog Seite 6
7 Beispiel: Bauteileverwaltung Jedes Bauteil hat eine Bauteilnummer (Zeichenreihe) und einen Preis (Ganzzahl). Bauteile können Elemente und Baugruppen sein. Eine Baugruppe besteht aus mehreren Bauteilen. Für ein Element ist der Preis direkt festgelegt, für Baugruppen berechnet er sich aus der Summe der Preise der enthaltenen Bauteile. Klassenstruktur für Bauteile-Beispiel (1) type TBauteil = class bauteilnr: string; function gibpreis: integer; virtual; TElement = class(tbauteil) preis: integer; constructor Create(n: string; p: integer); function gibpreis: integer; override; TBaugruppe = class(tbauteil) bauteile: array of TBauteil; constructor Create(n: string); procedure bauteilhinzu (b: TBauteil); function gibpreis: integer; override; function gibanzahl: integer; Abstrakte Methoden Methoden, für die keine Implementierung gegeben werden kann, sondern die ausschließlich als Platzhalter für speziellere Implementierungen dienen, werden "abstrakt" genannt. Schlüsselwort "abstract" Klassen, die abstrakte Methoden enthalten, heißen auch "abstrakte Klassen". Beispiel: Was ist die Implementierung der Methode "gibpreis" für die Oberklasse TBauteil? type TBauteil = class bauteilnr: string; function gibpreis: integer; virtual; abstract; Seite 7
8 Sichtbarkeit Öffentlich = public Privat = private Sichtbar in der aktuellen Unit Nur für Unterklassen = protected Auch sichtbar in Unterklassen in einer anderen Unit Geheimnisprinzip: Grundsätzlich sollte so viel wie möglich der in einem Objekt gespeicherten Information als "privat" deklariert werden. Erhöhung der Wartungsfreundlichkeit und Stabilität. Klassenstruktur für Bauteile-Beispiel (2) type TBauteil = class public bauteilnr: string; function gibpreis: integer; virtual; abstract; TElement = class(tbauteil) private preis: integer; public constructor Create(n: string; p: integer); function gibpreis: integer; override; TBaugruppe = class(tbauteil) private bauteile: array of TBauteil; public constructor Create(n: string); procedure bauteilhinzu (b: TBauteil); function gibpreis: integer; override; function gibanzahl: integer; Implementierung Bauteile-Beispiel (1) constructor TElement.Create(n: string; p: integer); bauteilnr := n; preis := p; function TElement.gibPreis: integer; gibpreis := preis; constructor TBaugruppe.Create(n: string); bauteilnr := n; procedure TBaugruppe.bauteilHinzu(b: TBauteil); SetLength(bauteile,Length(bauteile)+1); bauteile[high(bauteile)] := b; Seite 8
9 Implementierung Bauteile-Beispiel (2) function TBaugruppe.gibPreis: integer; var i,p: integer; p := 0; for i:=0 to High(bauteile) do p := p + bauteile[i].gibpreis; gibpreis := p; function TBaugruppe.gibAnzahl: integer; var i,a: integer; a := 0; for i:=0 to High(bauteile) do if bauteile[i] is TBaugruppe then a := a + (bauteile[i] as TBaugruppe).gibAnzahl else a := a+1; gibanzahl := a; Seite 9
Simulation von digitalen Schaltungen
Eckart Modrow Simulation von digitalen Schaltungen S. 1 Simulation von digitalen Schaltungen Inhalt: 1. Bezug zum Unterricht 2. Funktionsumfang des Simulators HASI 3. Klassenhierarchien 4. Die Erzeugung
MehrOOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
MehrEinstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
MehrVererbung und Polymorphie
page1 Vererbung und Polymorphie Florian Adamsky, B Sc florianadamsky@iemthmde http://florianadamskyit/ cbd So wareentwicklung im SS 2014 page2 Outline 1 Ein ührung 2 Vererbung Formen der Vererbung 3 Polymorphie
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
Mehr2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article
2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String
MehrJava Einführung Vererbung und Polymorphie. Kapitel 13
Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort
MehrEinführung in C# Teil 3. Matthias Nübling
Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrVorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3
Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrSeite 1. Informatik II. Prof. Dr. Heinrich Hußmann. Gliederung und Terminplan (für Fakultät Maschinenwesen)
Informatik II (für Fakultät Maschinenwesen) Heinrich Hußmann Sommersemester 2002 Technische Universität Dresden Prof. Dr. Heinrich Hußmann Fakultät Informatik Lehrstuhl Softwaretechnologie Dürerstr. 26,
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrInhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte
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)
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrVererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
Mehr9. Vererbung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi
9. Vererbung Einführung in die Programmierung (fbw) Sommersemester 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Einführung in die
MehrVererbung und Polymorphie
Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter
MehrObjektorientierte Programmierung OOP
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
MehrUrsprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrHSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2
HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
Mehr9. Zurück zur OOP: Vererbung und Polymorphismus
bertram.hafner@t-online.de Informatik 11 Seite 38 9. Zurück zur OOP: Vererbung und Polymorphismus Eine neue Klasse wird immer durch Vererbung aus einer bereits vorhandenen Klasse abgeleitet. Durch die
MehrTücken der dynamischen Bindung
Kapitel 3 Tücken der dynamischen Bindung 3.1 this-pointer Im Methodenaufruf o.m(x) ist o Bezugsobjekt wird als zusätzlicher Parameter übergeben: m(o,x) kann im Rumpf von m als this (bzw self) angesprochen
MehrÜberblick. 5. Objekt und Klasse, Elementfunktionen
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
MehrPrinzipien der objektorientierten Programmierung (OOP)
Die Ziele der OOP sind: - bessere Warbarkeit - Wiederverwendbarkeit 1.) Datenkapselung Prinzipien der objektorientierten Programmierung (OOP) Komplexe Datenstrukturen (wie zb ein Stack) werden vom Anwendungsprogramm
MehrKonzepte der Programmiersprachen
Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
MehrVererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
MehrMikrorechentechnik II. Klassen in C++
Mikrorechentechnik II Klassen in C++ class class cfilter { float K; float T; float Ta; public: // Filterverstärkung // Filterzeitkonstante // Tastzeit Zugriffskontrolle: public, protected, private void
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
Mehr6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006
MehrProgrammierung und Angewandte Mathematik
Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ziele Sie wissen, was Vererbung
MehrKapitel 8 Vererbung. Korbinian Molitorisz. IPD Tichy Lehrstuhl für Programmiersysteme
Kapitel 8 Vererbung Korbinian Molitorisz IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Vererbung im Fall von Klassen
MehrInformationsverarbeitung im Bauwesen
12 im Bauwesen Markus Uhlmann 1 Zusammenfassung der 11. Vorlesung Objektorientierte Programmierung (OOP) Wozu eigentlich? Was unterscheidet OOP von traditionellen Techniken? Verwendung von vordefinierten
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch
MehrEinführung in die Programmierung Wintersemester 2008/09
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Virtuelle Methoden Vererbung bisher: Definition
MehrBeispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der
Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert
Mehr1 Das Decorator Pattern als Generator
kleiner kommunikation max@kleiner.com 1 Das Decorator Pattern als Generator (Gut Dekoriert ist halb gebaut) Gelegentlich wollen wir Methoden einzelner Objekte ändern, ohne die bestehenden Klassen zu verändern.
MehrVererbung I. Kfz Eigenschaften und Methoden der Klasse Kfz Lkw. Pkw. Eigenschaften und Methoden der Klasse Kfz
Einführung in C++ Vererbung I Durch Vererbung können aus bereits bestehenden Klassen neue Klassen konstruiert werden. Die neue abgeleitete Klasse erbt dabei die Daten und Methoden der sog. Basisklasse.
MehrÜberblick. Überblick. Abstrakte Klassen - rein virtuelle Funktionen Beispiele
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
MehrC++ - Objektorientierte Programmierung Vererbung
C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.
MehrGrundlagen der Informatik
Grundlagen der Informatik Polymorphie, Abstrakte Klassen, Mehrfachvererbung Prof. Dr.-Ing. Thomas Wiedemann Prof. Dr. rer.nat. Ralph Großmann Fachgebiet Informatik / Mathematik Überblick zum Inhalt Klassen-3
MehrDie Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrGrundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Knopp 03.05.2017 Folie 1/34 GK C++: IDE, Klassenhierarchien Martin Knopp 03.05.2017 IDE Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil
MehrGrundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 Folie 1/35 GK C++: IDE, Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 IDE Integrated Development Environment
Mehr4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:
4. Vererbung Grundlagen der Vererbung 4. Vererbung 4. Vererbung Grundlagen der Vererbung Idee der Vererbung Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende
MehrObjektorientierte Programmierung (OOP)
orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrC++ - Objektorientierte Programmierung Konstante und statische Elemente
C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja
MehrDer Operator this. Wir betrachten nochmals die Klassendefinition von Ballon.
Der Operator this Wir betrachten nochmals die Klassendefinition von Ballon. public class Ballon { private int durchmesser; private int x1, y1; private Color farbe =Color.black; // Konstruktor ohne Farbe
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrUniversität Karlsruhe (TH)
Vererbung Vererbung im Fall von Klassen Klassen unterstützen (nur) einfache Vererbung (engl. single inheritance ) Die Klasse object ist die allen gemeine Oberklasse (Hierarchie mit einer einzigen Wurzel)
MehrC++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern
C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches
MehrGrundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21.
Mehrfache Vererbung Daniel Beneckenstein 21. August 2006 Mehrfache Vererbung Ableitung einer Klasse von beliebig vielen Basisklassen: class A {... }; class B {... }; class C {... }; class D: public A,
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl
MehrInhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2
iii Inhaltsverzeichnis Kurseinheit 1 1 Von der Aufgabenstellung zum Programm... 1 1.1 Motivation... 1 1.2 Softwareentwicklung... 2 1.3 EXKURS: Unified Modeling Language (UML)... 4 2 Anforderungsanalyse...
MehrBegriffe 1 (Wiederholung)
Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22
Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften
MehrTypisierung. Prüfungen zur Übersetzungszeit Type Test und Type Cast Bedingte Zuweisung Nil Übergangsparameter Grade der Typisierung. 3.
Typisierung Prüfungen zur Übersetzungszeit Type Test und Type Cast Bedingte Zuweisung Nil Übergangsparameter Grade der Typisierung 2 Untypisierte Sprachen erfordern Methodensuche zur Laufzeit bei Misserfolg
Mehr11.3 Virtuelle Methoden
11.3 Virtuelle Methoden Überdeckte Methoden: Betrachten wir noch einmal unsere Klassen Employee und Manager. class Employee void print() const cout
MehrJava Vererbung. Inhalt
Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter
MehrRückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren
Rückblick: Benutzerdefinierte Datentypen Definition der Klasse Vektor als Container für 2-dimensionale Vektoren class Vektor public: double k1, k2; // Deklaration der Klasse Vektor // Elementvariablen
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrJava für Bauingenieure
1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen
MehrPeter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp
Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden ffl mitp Inhaltsverzeichnis Einleitung 19 1 Grundlagen 21 Entwicklung und Eigenschaften von C + + 22 Objektorientierte Programmierung
MehrProgrammierkurs C/C++
Blockkurs: "Einführung in C/C++" Programmierkurs C/C++ Freitag Sandro Andreotti andreott@inf.fu-berlin.de WS 2008/09 1 Blockkurs: "Einführung in C/C++" 2 Vererbung Klassen erben die Member von Basisklassen:
MehrExceptions und Vererbung
Exceptions und Vererbung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter 2. Exceptions Eigene Exceptions Handling
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrC++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
Mehr7. Übung Informatik II - Objektorientierte Programmierung
7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber
MehrProgrammieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden
Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige
MehrObjektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string
Mehr12. Fachseminar Informatik Martin Jakobs Zustandsorientierte Modellierung (Standard 2)
Ergebnisse der Seminarsitzung vom 14. Januar 2008 Definition 1 Ein ist eine struktur- und verhaltenstreue Beschreibung eines eistierenden oder geplanten Sstems. Definition 2 Ein ist eine vereinfachte Nachbildung
MehrGrundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
MehrPHP Aufbaukurs. Tag 3. PHP5 & Klassen
PHP Aufbaukurs Tag 3. PHP5 & Klassen Organisatorisches 2 Igor Olkhovskiy Dr. Dipl.- Ing. Kontakt: olkhovskiy@rrzn.uni-hannover.de PHP Aufbaukurs 19.09.2006 Folie 2 PHP. OOP. Geschichte 3 PHP/FI ( PHP 1
MehrÜberschreiben von Methoden
Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra
MehrInformatik ist viel mehr als Delphi-Programmierung!
Gliederung 1. Objektorientierte Programmierung mit Object Pascal (5. Studienbrief, Kapitel 5) 9.4. + 16.4. 2. Software-Bausteine am Beispiel der Delphi-Komponenten (5. Studienbrief, Kapitel 5) 23.4. 3.
MehrObjektorientiertes Programmieren mit C++ für Fortgeschrittene
BEREICH DATENTECHNIK I CQ 300 00 TH 02 Objektorientiertes Programmieren mit C++ für Fortgeschrittene Kapitel 3 3. Mehrfachvererbung 3.1. Eigenschaften und Problematik 3.2. Virtuelle Basisklassen BEREICH
MehrKapitel 4: Klassen und Unterklassen
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind
MehrVerschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes
Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine
MehrEinführung in die Programmierung mit C++
1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 10. Vererbung und Polymorphie Vererbung und Polymorphie in C++ Seite 2 Klassen können von anderen Klassen
MehrVorkurs Informatik: Erste Schritte der Programmierung mit C++
Vorkurs Informatik WS 14/15 Vorkurs Informatik: Erste Schritte der Programmierung mit C++ Tag 3: Objektorientiere Programmierung 8. Oktober 2014 Vorkurs Informatik WS 14/15 > Einführung Agenda 1 Einführung
Mehr11 Vererbung und Klassenhierarchie
11 Vererbung und Klassenhierarchie Bestandteile objektorientierter Programmierung: Bestehende Klassen können durch Spezialisierung und Erweiterung weiterentwickelt werden, ohne den Programmcode der alten
MehrProgrammieren lernen in Borland Delphi 6
Programmieren lernen in Borland Delphi 6 von Walter Doberenz, Thomas Kowalski 1. Auflage Programmieren lernen in Borland Delphi 6 Doberenz / Kowalski schnell und portofrei erhältlich bei beck-shop.de DIE
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
MehrAnwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie
Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,
Mehr4. Objektorientierte Programmierung mit C++
4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung der Sprachfamilie Erweiterungen der Sprache C: Ein- und Ausgabe, Referenzen, Speicherallokation und Freigabe Grundlagen des Typkonzepts
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen
5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden
MehrOOP und Angewandte Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
(Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Klassen in C++ Beispiele, mit Aufzeigen der Trennung von Spezifikation und Implementierung
MehrExzerpt aus dem OOP-Skript von Dr. Golla (TU Dresden)
Exzerpt aus dem OOP-Skript von Dr. Golla (TU Dresden) OOP ist mehr eine Software-Entwurfsmethode als ein Programmierparadigma Der Trend zur OOP kann bestenfalls als Wechsel des Paradigmas in soweit angesehen
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrKapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik
Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen
MehrPolymorphismus 179. Function.h. #include <string>
Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function
Mehr