Abbildung des Aufruf-Interaktionsstils von.net in den kanonischen Interaktionsstil auf Basis von Ereignissen und umgekehrt
|
|
- Helmut Knopp
- vor 7 Jahren
- Abrufe
Transkript
1 - 1 - Abbildung des Aufruf-Interaktionsstils von.net in den kanonischen Interaktionsstil auf Basis von Ereignissen und umgekehrt Memo 5.1 BTS 1. Einleitung Das Einbinden von n in Umgebungen, die einen Interaktionsstil inkompatibel mit diesem der haben, wird durch den Einsatz von Vertreter und ermöglicht. Vertreter und dienen als Brücke zwischen der Umgebung und die, die zusammenarbeiten sollen. Zwischen ihnen wird ein Kommunikationskanal aufgebaut, über den Vertreter und sich anhand von einem kanonischen Interaktionsstil verständigen. 2. Kanonischer Interaktionsstil Der kanonische Interaktionsstil beruht auf Ereignisse, die typisierte Daten mit sich tragen. Aus Sicht der kann in Abhängigkeit der Richtung, in der die Ereignisse ausgegeben werden, grundsätzlich zwischen IN- und OUT-Ereignisse unterschieden werden. Die IN-Ereignisse sind ankommende Ereignisse bei der und die OUT-Ereignisse sind entsprechend ausgehende Ereignisse aus der. Der kanonische Interaktionsstil besteht nicht nur aus einzelnen INund OUT-Ereignissen. Benötigt werden auch Paare von unmittelbar kausal abhängige Ereignisse, die in entgegensetzten Richtungen fließen. Nur so lassen sich Interaktionsstile abbilden, bei denen die Zuordnung zwischen Anfrage- und Antwort- Ereignis durch den Interaktionsstil gegeben ist (z.b. Aufrufparadigma). Solche kausal zusammenhängende Paare von Ereignissen werden mit INOUT und OUTIN gekennzeichnet, je nachdem in welche Richtung das Anfrage-Ereignis geht. Die Ereignisse des kanonischen Interaktionsstils sind abstrakte Gebilden. Man abstrahiert vor jeglicher technischer Realisierung. Sie können z.b. durch Nachrichten über Socket-Kommunikation oder Fernaufrufe mit Hilfe einer geeigneten Middleware realisiert werden. Die Schnittstellen des kanonischen Interaktionsstils werden abstrakte Schnittstellen genannt. Ihre Beschreibung erfolgt in einer speziell dafür entworfenen Sprache, die Abstract Interface Definition (kurz AID) genannt wird. Die Beziehung zwischen einem abstrakten Ereignis in AID und dem konkreten Element im Quell- oder Ziel-Interaktionsstil, sowohl namentlich als auch nach Art, wird durch Annotationen hergestellt. Die Annotationen sind spezifisch für den jeweiligen Interaktionsstil.
2 Vermittlung zwischen dem kanonischen und anderen Interaktionsstilen Damit die volle Funktionalität einer in jeder beliebigen unterstützten Umgebung genutzt werden kann, müssen alle Elemente der Schnittstellen der mit ihrem ursprünglichen Interaktionsstil in Schnittstellen des kanonischen Interaktionsstils abgebildet werden können. Unter kann hier durchaus ein Geflecht von Entitäten verstanden werden, die zusammen die gewünschte Funktionalität vollbringen und in einer Umgebung zusammen mit dem ausgeführt werden. Der Vertreter für einen bestimmten Interaktionsstil muss seinerseits alle Elemente der Schnittstellen des kanonischen Interaktionsstils in entsprechende Elemente von Schnittstellen des gewünschten Interaktionsstils abbilden und das möglichst ohne einen Verlust von Information, der die Zusammenarbeit mit der verhindern sollte. 4. Elemente von.net-schnittstellen und ihre Abbildung in den kanonischen Interaktionsstil Mit.NET-Schnittstellen werden Schnittstellen von n bezeichnet, die im.net Framework ausgeführt werden. Obwohl die Programmiersprache, in der die.net implementiert ist, irrelevant ist, da letztendlich der Programm-Code immer zunächst in Intermediate Language Code und erst danach in Rechnerarchitekturspezifischen Instruktionen übersetzt wird, werden wir uns nach den Möglichkeiten von C# richten, da C# das volle Potenzial des.net Frameworks ausschöpft. Im Folgenden werden alle Elemente der.net-schnittstellen aufgelistet und es wird gezeigt, wie sie in den kanonischen Interaktionsstil abgebildet werden Konstruktoren Durch Konstruktoren kann das Exemplar einer schon bei der Erzeugung gezielt in einem bestimmten Zustand versetzt werden. Der Vertreter kann die entfernte Erzeugung von n innerhalb des s veranlassen, indem er ein spezielles INOUT-Ereignis mit Namen wie der Name der Schnittstelle in AID mit einem Suffix _NEW an der Schnittstelle AID_System schickt. Der erste Parameter ist dafür vorgesehen, dass der Vertreter einen Verweis auf dem Callback-Objekt für dieses Exemplar übergibt. Der Rückgabewert ist das soeben erzeugte Exemplar der. In AID werden diese Ereignisse nicht mit INOUT, sondern mit einem speziellen Schlüsselwort PARAM innerhalb der jeweiligen Schnittstelle deklariert, die eine erzeugbare darstellt. Der parameterlose Konstruktor einer wird immer automatisch erzeugt und muss nicht explizit in AID aufgeschrieben werden. public class { public (){ public (string s){
3 - 3 - INTERFACE PARAM string s Vertreter inout _NEW AID_System new _IN new 4.2. Methoden aus Schnittstelle der Der Aufruf einer Methode wird durch den Vertreter entweder mit einem IN- oder einem INOUT-Ereignis angestoßen. Wenn die Methode keine Daten zurückliefert, kann man das IN-Ereignis nutzen. In allen anderen Fällen muss INOUT genutzt werden. Eine Methode liefert Daten zurück, wenn sie einen Rückgabewert hat, den Wert von call by reference - und call by result -Parametern überschreibt, und Ausnahmen auswirft, die für den Anwender interessant sein können. Das folgende Diagramm zeigt der Ablauf schematisch. Es ist zu beachten, dass vor dem Aufruf der Methode eine Umwandlung von Variablen von Middleware in stattfindet, damit sichergestellt ist, dass die Methode Parameter von den richtigen Typen erhält. Im Falle, dass Daten zurückgeliefert werden, findet eine umgekehrte Umwandlung von Typen der in Middleware. Bei primitiven Typen wird nichts gemacht. Bei Exemplaren von Tupeln wird eine Umwandlung standardmäßig mittels Reflection durchgeführt. Bei Variablen von Verweistypen, die auf Exemplare von fernaufrufbaren Schnittstellen verweisen, wird eine Umwandlung durch Nachschlagen in einer Dictionary-Datenstruktur realisiert. Ergibt das Nachschlagen kein Treffen, dann handelt es sich um ein neu erzeugtes Exemplar einer, für die noch keinen bereitsteht. In diesem Fall wird ein erzeugt und ein Verweis auf dem dem Vertreter zurückgegeben. Der Vertreter kann anschließend mit der Methode SetCallback ein Callback-Objekt auf sich selbst dem übergeben. Vertreter in Umwandlung von Middleware in Vertreter inout Umwandlung von Middleware in Umwandlung von in Middleware
4 - 4 - Es folgen einige Beispiele von Deklarationen von Methoden in C# und deren Entsprechungen in AID. public void op(string s); IN op string s public void op(string s1, ref string s2, out string s3 INOUT op string s1, string s2 RETURNS string s2, string s3 public int foo(string s); INOUT op string s RETURNS int result method=foo returns=result 4.3. Eigenschaften und Mitgliedsvariablen Eigenschaften bieten einen kontrollierten Zugriff auf Mitgliedsvariablen. Der Zugriff erfolgt mit dem Operator =. Wenn die Eigenschaft auf der rechten Seite des Operators = steht, wird der get-block aus der Implementierung der Eigenschaft aufgerufen. Wenn die Eigenschaft auf der linken Seite steht, wird entsprechend der set-block ausgeführt. Der Zugriff auf Mitgliedsvariablen erfolgt ebenfalls mit dem Operator =. Somit unterscheidet sich der Abbildung und Umsetzung von Eigenschaften und Mitgliedsvariablen in AID nicht. Die Abbildung wird ganz analog zu der Abbildung von Methoden gestaltet. Wenn Daten zurückgeliefert werden, wie im Falle eine get-operation oder Lesen von einer Mitgliedsvariable, wird INOUT-Ereignis verwendet. Wenn etwas gesetzt werden muss, wird IN-Ereignis verwendet. private int p; public int Prop { get { return p; set { p = value; INOUT Prop -> int p property=prop IN Prop int p property=prop 4.4. Delegates and Events Delegates sind die typsichere und objektorientierte Variante von Funktionszeiger. Sie sind also Objekte, die die Verweise auf eine oder mehrere Methoden in sich verwalten. Delegates, die mehr als einen Methodenverweis aufnehmen, werden Multicast- Delegates genannt. Man kann das Exemplar eines Delegates ähnlich wie eine Methode aufrufen und dabei werden alle Methoden, deren Verweise der Delegate in sich hat, aufgerufen. Sowohl einfache als auch Multicast-Delegates können Rückgabewert oder out- und ref-parameter haben. Wenn dies noch bei einfachen Delegates noch Sinn macht, ist dies bei Multicast-Delegates, die mehr als einen Methodenverweis in sich haben, nicht mehr nachvollziehbar..net Framework garantiert nicht in welcher Reihenfolge die Methoden aufgerufen werden und ob alle
5 - 5 - ausgeführt werden, wenn in einer davon eine Ausnahme ausgeworfen wird, sowie ist es nicht garantiert, welchen Wert zurückgegeben wird und welchen Wert out- und ref- Parameter haben werden, wenn ihnen in den Methoden-Rümfpen unterschiedliche Werte zugewiesen werden. Events sind eine eingeschränkte Version der Multicast-Delegates. Events können nur von innerhalb der Klasse aufgerufen werden und man darf von außerhalb der Klasse nur die Operationen += und -= anwenden. Mit += registriert man einen neuen Beobachter für dieses Ereignis und mit -= kann man den Beobachter wieder löschen..net Events werden in AID durch OUT-Ereignissen abgebildet. Der registriert sich automatisch für das Ereignis, um Ereignisse an den Vertreter weiterleiten zu können. Events, die Rückgabe wert erwarten, und/oder ref- und out-parameter übergeben, wird in AID OUTIN-Ereignis verwendet. public delegate void MyEventDelegate(string s); public event MyEventDelegate MyEvent; OUT MyEvent string s delegate=myeventdelegate Mit der Annotation delegate wird auf den Namen des Delegates hingewiesen, den der verwendet wird, um sich für das Ereignis in.net zu registrieren Methoden aus Schnittstellen oder Delegates, die der Anwender der implementieren soll Anhand von einem Beispiel möchten wir uns genauer anschauen, worum es sich hierbei handelt. Nehmen wir an, eine kann Elemente sortieren. Dazu hat sie die Methode sort. Die Elemente werden vor der Sortierung einzeln über eine Methode add hinzugefügt. public void add(element e); public void sort(comparator c); *** Variante 0 *** public class Comparator { public int compare(element e1, Element e2){ //konkrete Implementierung *** Variante 1 *** public interface Comparator { public int compare(element e1, Element e2); *** Variante 2 *** public abstract class Comparator { public abstract int compare(element e1, Element e2); *** Variante 3 *** public delegate int Comparator(Element e1, Element e2);
6 - 6 - Die Methode sort sortiert die Elemente in der Reihenfolge, wie das Comparator-Objekt bestimmt. Variante 0 zeigt den Fall, in dem bereits eine Implementierung des Comparators vom Hersteller der bereitgestellt wurde. In diesem Fall wird für die Klasse Comparator auch eine AID-Schnittstelle vorgesehen, die möglicherweise keine IN- und OUT-Ereignisse hat, aber durch die Methode Comparator_NEW von der AID_System Schnittstelle erzeugt werden kann. Uns interessieren jetzt aber die andere drei Varianten. Der Anwender der soll die Implementierung von Comparator bereitstellen. Die erste Möglichkeit ist, dass Comparator eine Schnittstelle ist, die zweite, dass Comparator ein abstrakte Klasse ist und die dritte, dass dass Comparator eine Delegate ist. Im Grunde genommen werden alle in AID auf die gleiche Art und Weise abgebildet. Für jede vom Anwender zu implementierende Methode, wird ein OUTIN-Ereignis in einer Schnittstelle in AID definiert, die den Comparator entspricht. Im Falle eines Delegates wird nur eine Methode sein, die vom zu implementieren ist. Der wird der Aufruf einfach an das Callback- Objekt weiterleiten, das bei der Erzeugung von Comparator vom Vertreter übergeben wurde. INTERFACE Sorter IN add Element e IN sort Comparator c *** Variante 1 und 2 *** INTERFACE Comparator implements=comparator OUTIN compare Element e1, Element e2 RETURNS int result returns=result *** Variante 3 *** INTERFACE Comparator delegate=comparator OUTIN compare Element e1, Element e2 RETURNS int result returns=result 4.6. Statische Methoden, Eigenschaften und Mitgliedsvariablen Obwohl statische Methoden, Eigenschaften und Mitgliedsvariablen nicht eindeutig der Schnittstelle einer zugeordnet werden können, sollte man sie trotzdem unterstützen. Fabrik-Methoden und Hilfsfunktionen werden als statische Methoden implementiert. Es kann auch sein, dass eine ganze Bibliothek mit Berechnungsfunktionen als statische Methoden implementiert wird. Die Abbildung und Umsetzung geschieht nach den Prinzipien, nach denen ganz normale Methoden und Eigenschaften abgebildet wurden. Durch eine zusätzliche Annotation static=classname wird jedoch der Generator hingewiesen, dass an diese Stelle eine statische Methode oder Eigenschaft der Klasse ClassName aufzurufen ist Ausnahmen Ausnahmen gehören in der abstrakten Schnittstelle einer hinein, weil man möglicherweise die nicht richtig bedienen kann, wenn man kein Kenntnis
7 - 7 - von den Ausnahmen hat, die von der n unter bestimmten Bedingungen ausgeworfen werden. Ausnahmen sind in Java sogar ein Bestandteil der Deklaration von Methoden in Klassen und Schnittstellen. In.NET sind sie nicht. Eine genaue Auskunft über die Ausnahmen, die eine auswerfen kann, kann nur in der Dokumentation der gefunden werden. Relevante für die Bedienung der Ausnahmen sollten in AID explizit deklariert werden. Eine Liste von Ausnahmen wird mit dem Schlüsselwort EXCEPT eingeleitet und kann nur zu INOUT und OUTIN-Ereignissen deklariert werden. public class MyException1 : Exception { public string msg; void op(int a, ref int c);//throws MyException1 TUPLE MyException1 string msg INOUT op int a, int c -> int c EXCEPT MyException Zerstören von Exemplaren von n Wenn Exemplare von n erzeugt werden, dann müssen sie auch wieder zerstört werden. Um eine Überlastung des Systems bei großen Geflechten von n zu vermeiden, die mit vielen Exemplaren interagieren, soll eine Speicherfreigabe sowohl explizit als auch nach zeitlichen Triggern erfolgen. Wenn eine der Vertreter einer durch den Anwender zerstört wird, dann muss es eine entsprechende Zerstörung des Exemplars des s und die geben. Nur das einzige Exemplar von AID_System darf nicht von außen zerstört werden. Um dies zu realisieren, könnte man der Schnittstelle AID_System für jede Schnittstelle aus AID jeweils ein IN-Ereignis hinzufügen, das den Namen InterfaceName_FREE oder InterfaceName_DISPOSE trägt. Der einzige Parameter ist der Verweis auf dem der, die zerstört werden soll.
Delegaten. d. h. eine Tätigkeitsanforderung wird weitergeleitet
Einführung Delegaten delegate ist ein Objekt, das delegiert == weiterleitet d. h. eine Tätigkeitsanforderung wird weitergeleitet - Weiterleitung erfolgt an eine Funktion - diese Funktion(en) wurde dem
MehrC# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services
C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
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
MehrKapitel 10 Delegationsvariablen
Kapitel 10 Delegationsvariablen Korbinian Molitorisz IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Agenda Wie werden
MehrAufbau von Klassen. class punkt {...
Einführung in C++ Aufbau von Klassen Eine wird mit dem Schlüsselwort class eingeleitet, und endet mit einem Semikolon. Der Inhalt wird zwischen geschweiften Klammern geschrieben. class punkt {... ; Im
MehrDas Interface-Konzept am Beispiel der Sprache Java
Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse
MehrBeuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1
Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Parameter-Übergabe-Mechanismen in Java und in anderen Sprachen. 1. Methoden vereinbaren mit Parametern Wenn man (z.b. in Java) eine Methode
MehrJava Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017
Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
MehrPräsentation Interfaces
Einführung in Java Präsentation Interfaces Nozar Delassaei Marvi Inhalt 1. Erinnerung Klasse Objekte Beispiel Klasse Abstrakte Klasse Beispiel Abstrakte Klasse Mehrfachvererbung-1 Mehrfachvererbung-2 2.
MehrProf. W. Henrich Seite 1
Klasse - ist ein benutzerdefinierter Datentyp (Referenztyp) - hat Datenelemente - hat Methoden - Konstruktor ist spezielle Methode zum Erstellen eines Objektes vom Typ der Klasse (Instanz) - jede Klasse
MehrC++ - Objektorientierte Programmierung Polymorphie
C++ - Objektorientierte Programmierung Polymorphie hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen C++ - Objektorientierte Programmierung 21.06.16 Seite 1 Polymorphie
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,
MehrEinführung: Verteilte Systeme - Remote Method Invocation -
Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation
MehrObjekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3
Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
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,
MehrKapitel 9 Schnittstellen
Kapitel 9 Schnittstellen Korbinian Molitorisz IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Agenda Was ist eine Schnittstelle?
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
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
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,
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
MehrDie abstrakte Klasse Expression:
Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die
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
MehrTypsystem Plattform- und Sprachenunabhängigkeit in.net
Typsystem Plattform- und Sprachenunabhängigkeit in.net C# J# VB.NET Zwischencode CIL Windows Unix Auf welchen Grundlagen basiert dies? Komponenten & Frameworks Seite 1 Typsystem Grundlagen - CLR Common
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
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
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
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
MehrObjektorientierung. Marc Satkowski 20. November C# Kurs
Objektorientierung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Weiterführende Verzweigungen Tertiäre-Verzweigung switch case 2. Schleifen Zählschleife (for) break & continue 3. Objektorientierung
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
MehrÜberblick. 6. Konstruktor und Destruktor - obligatorische Elementfunktionen einer Klasse
Ü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
MehrPolymorphismus 44. Function.hpp. #include <string>
Polymorphismus 44 #include Function.hpp class Function { public: virtual ~Function() {}; virtual const std::string& get_name() const = 0; virtual double execute(double x) const = 0; }; // class
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,
MehrWas du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe.
Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe http://www.zitate-online.de/autor/goethe-johann-wolfgang-von/ http://www.weimar-lese.de/files_weimar_lese/johann_wolfgang_von_goethe_bearbeitet_von_andreas_werner.jpg
Mehrn 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen
n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 -
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrAlgorithmen und Datenstrukturen 07
(7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik
MehrGrundlagen der Informatik 0
Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg
MehrKlausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
MehrIT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1
IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrAlgorithmen und Datenstrukturen 06
31. Mai 2012 1 Besprechung Blatt 5 Fragen 2 Objektorientierte Programmierung Allgemein Sichtbarkeit Konstanten 3 Unified Modeling Language (UML) Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung
MehrAufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen
Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel
MehrÜberblick. Class-Objekte. Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen
Überblick Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen Stubs & Skeletons Aufgabe 2 Tutorial: http://download.oracle.com/javase/tutorial/reflect/index.html
MehrÜberblick. Beispiel: get()-methodenaufruf am VSBoard aus Übungsaufgabe 1. Analyse einer Methode: java.lang.reflect.method
Überblick Bietet die Möglichkeit das Laufzeitverhalten von Applikationen zu analysieren und es gegebenenfalls sogar zu beeinflussen Stubs & Skeletons Aufgabe 2 Tutorial: http://docs.oracle.com/javase/tutorial/reflect/index.html
MehrEine Kommando-Oberfläche für.net
Institut für Systemsoftware O.Univ.-Prof. Dr. Hanspeter Mössenböck Eine Kommando-Oberfläche für.net In.NET (wie auch in vielen anderen Systemen) haben Programme nur einen einzigen Eintrittspunkt (ihre
MehrWaitomo. Compilerbaupraktikum Wintersemester 2006/2007. Stefan Wehr. 24. Oktober 2006
Waitomo Compilerbaupraktikum Wintersemester 2006/2007 Stefan Wehr 24. Oktober 2006 1 Einleitung Quellsprache für das Compilerbaupraktikum ist Waitomo, ein Java-ähnliche Sprache mit Unterstützung für Typklassen
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
MehrSchlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:
Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -
MehrDelegates. «Delegierter» Methoden Schablone Funktionszeiger. Dr. Beatrice Amrhein
Delegates «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen 2 Definition 3 Definition Ein Delegat
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
MehrDie Klasse java.lang.object. Thorsten Treffer
Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:
MehrMethoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
MehrOCP Java SE 8. Lambda
OCP Java SE 8 Lambda Lambda-Ausdruck sieht ähnlich wie eine Deklaration einer Methode ohne Name und Ergebnistyp aus (a, b) -> b.compareto(a) Lambda Vor Java 8 Ausführbarer Programmcode ( Verhalten ) nur
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrOCP Java SE 8. Lambda
OCP Java SE 8 Lambda Lambda-Ausdruck sieht ähnlich wie eine Deklaration einer Methode ohne Name und Ergebnistyp aus (a, b) -> b.compareto(a) Lambda Vor Java 8 Ausführbarer Programmcode ( Verhalten ) nur
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
MehrAufgabe 1 (Programmanalyse, Punkte)
2 Aufgabe 1 (Programmanalyse, 8 + 6 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Schreiben Sie hierzu jeweils die ausgegebenen Zeichen hinter den Kommentar OUT:. public class
MehrFragen zur OOP in Java
- 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...
MehrEinführung in die Programmierung mit C++
1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 9. Klassen und Methoden Was sind Klassen? Seite 2 sprachliches Mittel von C++ um objektorientierte Programmierung
MehrProgrammierung WS14/15 Lösung - Präsenzübung C. Aschermann, F. Frohn, J. Hensel, T. Ströder
Prof. aa Dr. J. Giesl C. Aschermann, F. Frohn, J. Hensel, T. Ströder Aufgabe 1 (Programmanalyse): (14 + 6 = 20 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen Sie hierzu
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
MehrProgrammieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik
Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen
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
Mehr7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.
7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.html) bietet leider nur begrenzte Verteilungsabstraktion Unterstützung
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.
MehrProgrammiermethodik 3. Klausur Lösung
Programmiermethodik 3. Klausur Lösung 9. 1. 2014 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 16 3 45 4 19 5 20 Gesamt 120 1 Seite 2 von 10 Aufgabe 1) Objekt-Orientierung und Vererbung
Mehr1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen
1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden
MehrLanguages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008
Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008 27. Februar 2008 Institut für Softwaresysteme, TUHH Regeln: 1. Zu dieser Klausur sind keinerlei Hilfsmittel zugelassen.
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:
MehrInformatik II Übung 06. Benjamin Hepp 5 April 2017
Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.
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
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
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
Mehr3. Exkurs in weitere Arten der Programmierung
3. Exkurs in weitere Arten der Programmierung Inhalt: Objektorientierte Programmierung in C++ Logische Programmierung in Prolog Peter Sobe Objektorientierte Programmierung in C++ C++ ist eine objektorientierte
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
MehrProgrammieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik
Programmieren I Dokumentation mit javadoc Heusch 10.4 Ratz 4.1.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Automatische Dokumentation Java bietet standardmäßig das Dokumentationssystem
MehrWeitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax
Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
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
MehrObjektorientierte Programmierung
Objektorientierte Programmierung Bis jetzt kennen wir (fast) nur primitive Datentypen. Diese entsprechen weitestgehend der Hardware des Rechners (z.b. besitzt ein Rechner Hardware um zwei floats zu addieren).
MehrKapitel 1 Neues in Java 8 und Java 7
Kapitel 1 Neues in Java 8 und Java 7»Jede Lösung eines Problems ist ein neues Problem.«Johann Wolfgang von Goethe (1749 1832) Dieses Kapitel fasst die wesentlichen Änderungen von Java 8 kompakt zusammen,
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c 2009 D.Rösner
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
MehrPolymorphie und UML Klassendiagramme
Polymorphie und UML Klassendiagramme Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung Vererbung hat einen sehr interessanten und effektiven Effekt: die Polymorphie. Darum geht es in dieser Veranstaltung. 2
Mehr7. Objektorientierung. Informatik II für Verkehrsingenieure
7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete
MehrÜberblick. R.Grossmann / P. Sobe 1
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 3. Grundlagen des Typkonzepts von C++ 4. Ziele der Objektorientierung 5. Objekt und Klasse, Elementfunktionen
MehrVariablen und Parameter
D3kjd3Di38lk323nnm Variablen und Parameter Eine Variable repräsentiert einen Speicherbereich, der einen veränderbaren Wert enthält. Eine Variable kann eine lokale Variable, ein Parameter (value, ref oder
MehrGliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.
Gliederung Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c
MehrAbstrakte Klassen und Interfaces
Abstrakte Klassen und Interfaces Thomas Schwotzer 1 Einführung Wir haben uns mit Vererbung und Polymorphie beschäftigt. Klassen sind so in der Lage, ableitenden Klassen Zugriff auf Member und Methoden
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
MehrC# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 4: Kombination OOP/.NET
C# Programmierung Eine Einführung in das.net Framework C# Programmierung - Tag 4: Kombination OOP/.NET 1/27/2012 1 Do Events Delegates Operatoren Exceptions Namespaces Bibliotheken.NET Klassen Serialisierung
MehrUmgang mit Fehlern. Sinn von Ausnahme-/Fehlerobjekten Dokumentation Umgang mit Fehlern Eigene Fehlerklassen
Umgang mit Fehlern Sinn von Ausnahme-/Fehlerobjekten Dokumentation Umgang mit Fehlern Eigene Fehlerklassen Die Java-Fehlerbehandlung stellt gegenüber älteren Verfahren einen großen Fortschritt dar. Prof.
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
Mehr1. Testklausur Sommersemester 2013 Datenstrukturen und Algorithmen 24. Mai 2013
Hochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker 1. Testklausur Sommersemester 2013 Datenstrukturen und Algorithmen 24. Mai 2013 Bevor Sie mit der
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
Mehr1 Einleitung Generizität Syntax... 2
Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 1 1.1 Generizität................................ 1 1.2 Syntax.................................. 2 2 Realisierung 2 2.1 Compilierung generischer Klassen...................
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, Polymorphie und innere Klassen 2 Vererbung im Klassendiagramm (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Object
Mehr