C#-Workshop, Teil 2: C#-Objekte im Praxiseinsatz

Größe: px
Ab Seite anzeigen:

Download "C#-Workshop, Teil 2: C#-Objekte im Praxiseinsatz"

Transkript

1 ITMAGAZINE C#-Workshop, Teil 2: C#-Objekte im Praxiseinsatz 15. Juni Der zweite Teil des C#-Workshops beschäftigt sich mit der Erstellung und Behandlung von Objekten und zeigt, wie die Leistungsfähigkeit des.net-frameworks genutzt werden kann. Ein Objekt definiert sich durch Eigenschaften, Methoden und Ereignisse. Ein entscheidender Aspekt der objektorientierten Programmierung ist neben der Vererbung vor allem die Kapselung von Programmlogik. Die Einhaltung dieses Grundsatzes gewährleistet die Erstellung von Objekten, welche dann in einem hohen Masse wiederwendbar sind und sich universell einsetzen lassen. In C# wird die Definition eines Objektes eingeleitet durch das Schlüsselwort class. Eine hierdurch erzeugte Klasse entspricht einem Objekt. Durch Schlüsselwörter, denen class vorangestellt wurde, werden die Sichtbarkeit dieser Klasse innerhalb des aktuellen Projektes und eine Veröffentlichung gesteuert. Eine als public definierte Klasse ist von anderen Programmen instanzierbar und kann entsprechend benutzt werden. Hingegen ist eine als privat gekennzeichnete Klasse weder innerhalb des aktuellen Projektes noch von anderen Programmen verwendbar. Soll eine Klasse innerhalb des aktuellen Projektes verwendet werden, so ist das Schlüsselwort internal voranzustellen. Über weitere Schlüsselwörter kann das Verhalten einer Klasse bei der Vererbung gesteuert werden. Soll eine Klasse lediglich eine Struktur definieren, die von vererbten Objekten genutzt wird, so besteht die Möglichkeit, eine Klasse als abstract zu kennzeichnen. Eine so definierte Klasse muss in jedem Fall vererbt werden, sie kann nicht direkt in einem Programm instanziert werden. Der Einsatz eines solchen Konstruktes erlaubt beispielsweise die Definition eines Standardobjektleistungsumfanges, der dann individuell gefüllt werden kann. Es gibt auch Fälle, in denen vermieden werden soll, dass eine Klasse abgeleitet wird. Durch Einsatz des Schlüsselwortes sealed wird die Ableitung verboten und die Klasse damit als endgültig festgelegt. Eigenschaften festlegen Nach der Definition des Objektes, der Sichtbarkeit und des Vererbungsverhaltens gilt nun die Betrachtung der Definition von Eigenschaften innerhalb einer Klasse. Es ist zwar generell möglich, eine Variable innerhalb der Klasse als public zu definieren. Dies entspricht aber nicht dem Gedanken der Kapselung. Durch die Kapselung von Eigenschaften lässt sich auch das Verhalten beim Zugriff auf diese Eigenschaften im Detail steuern. Zudem könnte es notwendig sein, bei der Zuweisung von Eigenschaften entsprechende Plausibilitätsprüfungen durchzuführen. Auch die Abfrage von Eigenschaften könnte dynamisch aufgrund von anderen Eigenschaften unterschiedliche Werte zurückgeben. Ein solches Konstrukt zur Definition einer Eigenschaft kapselt prinzipiell den Zugriff auf eine private Variable. Das folgende Beispiel zeigt die Realisierung einer Eigenschaft Nachname in einem öffentlichen Objekt Person. Dabei wird der Name bei der Zuweisung immer auf 30 Zeichen gekürzt.

2 namespace Adressen using System; public class Person private string_ mstr_nachname=""; public string Nachname set mstr_nachname =_ value.substring(1,30); get return mstr_nachname;

3 //Codezeilen, die aus Layout- //technischen Gründen umbrochen //werden mussten, werden an der //betreffenden Stelle mit einem //Unterstrich gekennzeichnet. Auf die Deklaration der Klasse erfolgt die Definition einer innerhalb dieser Klasse privaten Variable mstr_nachname. Die Zeile public string Nachname leitet die Definition einer Eigenschaft ein. Der set-block kommt zur Ausführung, wenn dieser Eigenschaft ein Wert zugewiesen wird. Dabei steht der Wert über den speziellen Parameter value zur Verfügung. Der get-block wird bei der Abfrage dieser Eigenschaft durchlaufen. Hier erfolgt die Rückgabe des Wertes der Eigenschaft über das Schlüsselwort return. namespace Adressen using System; public class Test public void Main() //Variable vom Typ //definieren Person objperson;

4 //objperson instanzieren objperson = new Person(); //Eigenschaft Nachname //mit Wert versorgen objperson.nachname =_ "Groth"; //Eigenschaft Nachname //auslesen Console.WriteLine_ ("Nachname:,objPerson._ Nachname); Oftmals kommt es vor, dass eine Eigenschaft schreibgeschützt sein muss, beispielsweise eine Status-Eigenschaft. Um dieses zu erreichen, genügt es, den entsprechenden set-block wegzulassen. Danach erzeugt eine Zuweisung dieser Eigenschaft einen Laufzeitfehler. private string mstr_id=""; public string ID

5 get return mstr_id; Methoden definieren Die Definition von Methoden entspricht dem unter C# üblichen Standard zur Definition von Prozeduren und Funktion. Eine Prozedur wird mit dem vorgestellten Schlüsselwort void versehen. Typisch für ein Objekt Person wäre die Implementierung einer Methode Update, welche die Daten in einer Datenbank speichert. public void Update() //Code für das Update //der Datenbank Bei einer Funktion wird dem Namen der Funktion der Rückgabetyp vorangestellt. Als Beispiel bietet sich die

6 Bei einer Funktion wird dem Namen der Funktion der Rückgabetyp vorangestellt. Als Beispiel bietet sich die Implementierung der Methode ToString() an. Viele der Basisklassen des.net-frameworks stellen diese Methode zur Verfügung, um den Inhalt des Objektes als Zeichenfolge formatiert ausgeben zu können. Hierbei wurde die exemplarisch verwandte Klasse Person um die Eigenschaften Anrede und Vorname erweitert. override public string ToString() return this.anrede_ + " " + this.vorname_ + " " + this.nachname; Oftmals stellt es ein Problem dar, dass Funktionen nur genau einen Wert zurückliefern können. C# stellt dazu die Schlüsselwörter ref und out zur Verfügung, die einem Parameter vorgestellt werden. Während ref mit einer Referenz auf die dort übergebene Variable arbeitet, bietet out zusätzlich den Vorteil, mit nicht initialisierten Variablen arbeiten zu können. Prinzipiell entspricht out aber der Arbeit mit einer Referenz. Um dem Prinzip der Kapselung auch bei Eigenschaften und Methoden gerecht zu werden, ist hier der Einsatz von Schlüsselwörtern zur Steuerung der Sichtbarkeit notwendig Entsprechend der Definition einer Klasse veröffentlicht public die entsprechende Eigenschaft oder Methode, private hingegen macht sie nur für die aktuelle Klasse zugänglich. Soll der Zugriff nur Innerhalb des aktuellen Projektes erfolgen, so ist internal zu wählen. Zusätzlich kann eine Eigenschaft oder Methode aber auch in ihrem Sichtbarkeitsbereich als protected definiert werden. Dies hat zur Folge, dass die Sichtbarkeit nur innerhalb von abgeleiteten Klassen gegeben ist. So können den "Kunden" des Objektes eigentlich private Funktionalitäten exklusiv zur Verfügung gestellt werden. Zusätzlich kann noch die Schlüsselwortkombination internal protected verwandt werden, diese beschränkt die Möglichkeiten von protected auf das aktuelle Projekt.

7 Besonderheiten mit abstract Neben der Festlegung, in welcher Form Eigenschaften und Methoden sichtbar sein sollen, ist natürlich auch die Steuerung des Objektes bei der Vererbung wichtig. Dabei ist eine Besonderheit bei der Verwendung des Schlüsselwortes abstract zu bedenken. Da hier eine Implementation in der abgeleiteten Klasse notwendig ist, muss eine Vererbung in jedem Fall stattfinden. Es ist denn auch nicht möglich, eine Klasse direkt zu instanzieren, die in irgendeiner Form eine abstract-definition enthält. Faktisch erhält somit die gesamte Klasse den festgelegten Status abstract. public abstract class DataEntry public abstract void AddNew(); public abstract void Edit(); public abstract void Delete(); public abstract void Read(); Dieses Beispiel definiert die Struktur für einen Typ von Klasse, über welche die Erstellung von Objekten des Typs Datenbankeinträge möglich wird. In den abgeleiteten Klassen müssen die einzelnen Methoden dann entsprechend mit Code zum Datenbankzugriff implementiert werden.

8 Statische Methoden und Eigenschaften Ein weiteres Konzept der objektorientierten Programmierung unter C# sind statische Methoden und Eigenschaften, die vorwiegend zum Einsatz kommen. Auch wenn es sogar möglich ist, Variablen statisch zu definieren, so ist eine Kapselung über die Erstellung einer Eigenschaft dennoch vorzuziehen. Durch die Verwendung des Schlüsselwortes static wird eine solche Eigenschaft unabhängig von allen Instanzen. Ausschlaggebend ist immer die Basisklasse. Das folgende Beispiel realisiert einen Zähler, der angibt, wie oft eine Instanz der Klasse Person erstellt wurde. Der Code zum Inkrementieren dieses Zählers befindet sich im Konstruktor der Klasse, welcher im folgenden noch detailliert vorgestellt wird. private int static_ mint_instcount=0; public static int InstCount set mint_instcount = value; get return mint_instcount;

9 Virtuelle Funktionen dienen zur Optimierung von Methoden unter dem Schlüsselwort virtuell. Virtuell bedeutet hierbei, dass der Compiler bei abgeleiteten Klassen den tatsächlichen Objekttyp ermittelt und darauf basierend die am besten geeignete Funktion aufruft. Eine so definierte Methode kann überschrieben werden, ohne Gefahr zu laufen, dass die in der Basisklasse definierte Funktion aufgerufen wird. Im folgenden wird die Methode Update der Klasse Person nun als virtuell definiert, um sie später in einem auf Person abgeleiteten Objekt überschreiben zu können. virtual public void Update() //Code für Update auf //die Datenbank einfügen Erstellungsroutinen einsetzen Als eine komfortable und sichere Erstellung von Objekten zur Laufzeit ist der Einsatz von Erstellungsroutinen oder Konstruktoren gedacht. Eine solche Erstellungsroutine wird mit dem selben Namen wie die Klasse versehen und kann über eine beliebige Anzahl von Parametern verfügen. Für die Klasse Person existiert eine Erstellungsroutine, über die alle wichtigen Eigenschaften sofort bei der Erstellung einer Instanz des Objektes gesetzt werden können.

10 public class Person public Person(string_ Anrede,string Vorname,_ string Nachname) this.anrede = Anrede; this.vorname = Vorname; this.nachname = Nachname; //Instanzenzähler erhöhen mint_instcount++;... Dieser Quelltext macht von dem Schlüsselwort this Gebrauch, das einen Verweis auf die aktuelle Klasse enthält. So können die Eigenschaften der eigenen Klasse angesprochen werden. An dieser Stelle macht der Einsatz eines weiteren Konzeptes der objektorientierten Programmierung Sinn: Durch Überladung kann eine weitere Erstellungsroutine unter dem selben Namen im Quelltext vorhanden sein, es müssen sich lediglich die Parameter unterscheiden. Wird eine so überladene Funktion aufgerufen, wählt der Compiler die geeignete Funktion durch Abgleich der Parameter im Aufruf mit den für die Methode definierten Parametern. Die zuerst erstellte Routine lässt lediglich das Füllen des Objektes mit neuen Daten zu. Soll eine Person aber beispielsweise direkt aus der Datenbank über eine ID abgerufen werden, so könnte eine überladene Erstellungsroutine den folgenden Aufbau haben.

11 public class Person public Person(string_ Anrede,string Vorname,_ string Nachname) this.anrede = Anrede; this.vorname = Vorname; this.nachname = Nachname; //Instanzenzähler erhöhen mint_instcount++; public Person(string ID) mstr_id = ID; //Instanzenzähler erhöhen mint_instcount++; //Datenbankzugriff über ID //hier programmieren Bei der Instanzierung des Objektes Person kann nun wahlweise entschieden werden, ob eine neue Person angelegt werden soll oder ob auf eine vorhandene Person über die ID zugegriffen wird. Dies ermöglicht eine sehr effiziente Instanzierung von Objekten. Der folgende Ausschnitt aus einem Quelltext zeigt beide Varianten.

12 public class Test public void Main() //Variable vom Typ //Person definieren Person objperson; //2.Variable vom Typ //Person definieren Person objperson2; //Instanz objperson //erstellen objperson = new_ Person("Herr",_ "Frank","Groth"); //Instanz objperson2 //durch überladene //Erstellungsroutine objperson2 = new_ Person("ID1");

13 Die Erzeugung von Klassen Nachdem die Basiskonzepte der Vererbung unter C# erläutert wurden, soll nun auf Basis der Klasse Person eine spezielle Klasse erzeugt werden. Hierzu wählen wir einen Angestellten. Dieser verfügt im Beispiel als weitere Eigenschaft über ein Gehalt. public class_ Angestellter:Person private double mdbl_gehalt = 0; public Angestellter(string_ Anrede,string Vorname,string_ Nachname,double Gehalt)_ :base(anrede,vorname,nachname) this.gehalt = Gehalt; public double Gehalt set

14 mdbl_gehalt = value; get return mdbl_gehalt; override public void Update() //spezieller Code, um einen //Angestellten in der //Datenbank zu erfassen override public string_ ToString() return base.tostring()+_ " Gehalt: " +_ this.gehalt.tostring(); In der Definition der Klasse mit dem Namen Angestellter wird durch den Doppelpunkt und den darauf folgenden Namen der Klasse Person angegeben, dass die Klasse Angestellter eine Vererbung der Klasse Person ist.

15 Damit stehen alle entsprechend definierten Eigenschaften und Methoden der Klasse Person auch als Angestellter zur Verfügung. Da diese Klasse über eine zusätzliche Eigenschaft Gehalt verfügt, muss die Erstellungsroutine angepasst werden. Dabei wird die Erstellungsroutine der Klasse Person genutzt. Das Schlüsselwort base, welches ebenfalls durch einen Doppelpunkt getrennt auf die Definition folgt, ruft die entsprechende Erstellungsroutine der Klasse Person auf. Das Gehalt ist nur bei einem Angestellten definiert, also ist eine entsprechende Eigenschaft zu implementieren. Das Gehalt sollte aus der Erstellungsroutine direkt mit angesprochen werden können. Da die Datenbankstruktur eines Angestellten sich von einer Person unterscheidet, muss die Methode Update ebenfalls angepasst werden. Diese wurde in der Personenklasse als virtuell definiert und kann nun mit override überschrieben und angepasst werden. Dasselbe gilt für die Methode ToString. Diese verwendet über base.tostring() die in der Klasse Person bereits implementierte Methode ToString und hängt lediglich das Gehalt an. C# und das.net-framework Im ersten Teil dieses Workshops wurde bereits auf die Ausrichtung von C# auf die Erstellung von Komponenten hingewiesen. Im folgenden soll nun eine solche Komponente erstellt werden. Diese Komponente basiert auf der bereits vorgestellten Klasse Person. Zuerst wird eine zusätzliche Eigenschaft implementiert und die Methode ToString um die Ausgabe der in Klammern gesetzten Eigenschaft erweitert. Als überladene Erstellungsroutine wurde bereits eine Methode mit dem Parameter vorgesehen. Diese soll auf eine Datenbanktabelle zugreifen, dort den entsprechenden Datensatz anhand der ID finden und die Eigenschaften der Klasse mit den gelesenen Werten füllen. Unter.Net enthält das Framework eine spezielle Klassenbibliothek mit dem Namen ADO.Net. ADO.Net ist die auf.net abgestimmte Weiterentwicklung der allgemein bekannten Active Data Objects, die heutzutage den Standard beim Datenbankzugriff unter Windows darstellen. Da das gesamte.net-framework sich über Klassenbibliotheken präsentiert, ist die Nutzung entsprechender Funktionalitäten sehr einfach. So gibt es unter ADO.Net einige spezielle Objekte, welche sich gezielt mit der Anbindung an Microsoft SQL Server befassen. Diese werden im folgenden bei der Kapselung des Datenbankzugriffes benutzt. Vor der Nutzung von ADO.Net muss der entsprechende Namespace dem aktuellen Projekt bekannt sein. Dazu sollten folgende using-zeilen vorhanden sein. Im folgenden wird der erweiterte Quelltext für die Routine Person gezeigt. Es werden drei Objekte aus ADO benötigt, um die in SQL Server vorhandene Tabelle "Personen" in der Datenbank "Adressen" anzusprechen zu können. SQLConnection zur Verbindung mit der Datenbank, SQLCommand zur Aufnahme der Select-Anweisung und ein SQLDataReader zum Lesen der Daten. Dieser verhält sich nur vorwärts lesend. Über den Aufruf der Methode Read wird der Datenbank-Cursor weiterbewegt. Da hier nur mit maximal einem Datensatz gerechnet werden kann, reicht eine einfache if-bedingung. Eine Datenbankanbindung ist generell sehr fehlerträchtig, also muss eine entsprechende Ausnahmebehandlung implementiert werden. Die Methode macht keine eigene Fehlerbehandlung, sondern löst aufgetretene Fehler über throw neu aus. Die Fehlerbehandlung sollte dann in dem aufrufenden Programm stattfinden. Dieses Vorgehen macht diese Komponente unempfindlich gegen Probleme. Abschliessend wird die gesamte Klasse dann als adressen.dll in Form einer Assemblierung kompiliert und kann über den Namespace Adressen weiterverwendet werden.

16 Um die erstellte Komponente über using Adressen einzusetzen, wird eine klassische Windows-Anwendung erstellt. Das.Net-Framework liefert über WinForms einen Satz von Bibliotheken, die darauf abgestimmt sind. Das im untenstehenden Bild abgebildete Formular hat die Aufgabe, nach Eingabe einer ID den zugehörigen Personentext anzuzeigen. Ein direkter Datenbankaufruf aus dem Formular heraus ist nicht gewollt, dafür wurde die Komponente Adressen entwickelt. Die durchgängig objektorientierte Struktur des.net-frameworks wird bereits bei der Definition der Formularklasse deutlich. Diese leitet sich nämlich direkt von System.WinForms.Form ab. Danach folgt für alle Steuerelemente eine Variablendefinition und in der Erstellungsroutine PersonAnzeigen wird die Initialisierung aller Controls und des Formulars aufgerufen. Aus Gründen der Übersichtlichkeit wurde der hier notwendige Code ausgeblendet. Er kann aber jederzeit über den WinForms-Designer neu erstellt werden. Für die Funktionalität wichtig ist die Zuweisung einer Ereignisprozedur beim Klicken auf den Button Lesen. In dieser Prozedur wird ein Personenobjekt instanziert, welches über den Namespace Adressen zur Verfügung steht. Bei der Erstellung wird die eingegebene ID übergeben. Dies führt dann zu einem Datenbankzugriff in der vorher erstellten Komponente. Durch den folgenden Aufruf der Methode ToString des Objektes Person wird dann der Inhalt des Objektes objperson angezeigt. Da das Objekt Person alle Fehlermeldungen weitergibt, ist hier eine entsprechende Fehlerbehandlung notwendig. Abschliessend erfolgt noch die Definition einer Methode Main. Diese dient als Startpunkt der WinForms-Anwendung, indem sie eine Instanz des Formulars erstellt. Die Weiterentwicklung von ASP Unter.Net hat die ASP-Technologie mit ASP.Net sicher den grössten Fortschritt gemacht. So ist es jetzt unter anderem möglich, serverseitig auf Ereignisse zu reagieren. Zudem erfolgt die Erstellung solcher Anwendungen nun objektorientiert und nimmt eine klare Trennung zwischen dem Programmcode und dem Layout vor. Dabei ist ASP.Net auf die Nutzung von HTML 3.2 ausgerichtet. Dieses gewährleistet eine grösstmögliche Browser-Unabhängigkeit. Die Möglichkeit, auf Ereignisse reagieren zu können, erlaubt das bereits als Winforms-Anwendung realisierte Programm zur Nutzung der Komponente Adressen auch als Web-Anwendung zu erstellen. Dabei ist der Programmcode, der durch einen Klick auf den Button Lesen ausgelöst wird, identisch mit der WinForms-Anwendung. Der zugehörige HTML-Code ist hier nicht abgebildet. Das Ereignis Page_Load, welches beim Aufruf der Seite ausgelöst wird, dient in diesem Fall zur Ausgabe einer Kopfzeile. Mit ASP.Net ist die Erstellung von interaktiven, komponentenbasierenden Anwendungen einfach geworden. ASP-Anwendungen werden kompiliert und erzielen somit eine hohe Performance. Mit C# ist nun erstmals ein Sprache der C-Familie für die Entwicklung solcher Anwendungen verfügbar. Fazit In diesem Workshop konnten weder alle Möglichkeiten von C# aufgezeigt, noch die Mächtigkeit des

17 .Net-Frameworks in Verbindung mit C# erschöpfend behandelt werden. Es sollte vielmehr Lust geweckt werden, sich einmal C# anzusehen. Wer bereits C++ kennt, wird wenig Probleme haben, auch Java ist nicht die ganz grosse Hürde. Wer sich mit Visual Basic beschäftigt, wird sich unter.net sowieso mit einem neuen Sprachumfang auseinandersetzen müssen. Vieles in Visual Basic.Net gleicht C#. Für die Erstellung von Anwendungen und Komponenten für.net ist C# auf jeden Fall eine absolute Empfehlung. Copyright by Swiss IT Media 2016

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

GetName(), GetName(), GetGeschlecht() und AelterWerden(). 11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer

Mehr

Vererbung & Schnittstellen in C#

Vererbung & 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

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

Kapitel 6. Vererbung

Kapitel 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

Mehr

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich

13 OOP MIT DELPHI. Records und Klassen Ein Vergleich 13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,

Mehr

Kapitel 6. Vererbung

Kapitel 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

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

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

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

OOP mit C# 1.0 und 1.1

OOP mit C# 1.0 und 1.1 Jürgen Bayer OOP mit C# 1.0 und 1.1 Von einfachen Klassen zum Polymorphismus Inhaltsverzeichnis 1 Klassen und Strukturen 1 2 Die Strukturierung einer Anwendung 3 3 Einfache Klassen und deren Anwendung

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 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

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Ü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,

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann Einführung in das Microsoft.NET-Framework Programmiersprache C# 02: Visual Studio / Hello World Boris Hülsmann 23.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Klassen in Java. Klassen

Klassen in Java. Klassen Klassen in Java Klassen Klassen beschreiben Objekte, die abstakte oder konkrete Sachverhalte modellieren. Objekte sind durch einen Status gekennzeichnet (State). Der Status eines Objektes ergibt sich aus

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

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

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Abschnitt 9: Schnittstellen: Interfaces

Abschnitt 9: Schnittstellen: Interfaces Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung

Mehr

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

Mehr

12. Vererbung. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)

12. Vererbung. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04) 12. Vererbung Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Vererbung Konzept!Protected Section!Virtuelle Mitgliedsfunktionen!Verwendung von Vererbung Copyright: M. Gross, ETHZ, 2003 2 Vererbung!

Mehr

Klassenbeziehungen & Vererbung

Klassenbeziehungen & Vererbung Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in

Mehr

Aufgabe 1. »Programmieren«, WS 2006/2007. Nino Simunic M.A.

Aufgabe 1. »Programmieren«, WS 2006/2007. Nino Simunic M.A. »Programmieren«, WS 006/007 Nino Simunic (nino.simunic@uni-due.de) Übungsblatt 4 Aufgabe 1 OOP In dieser Aufgabe sollen Sie Autos als Klasse Car modellieren. Die Eigenschaften auf attributiver Ebene sind:

Mehr

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

Verhindert, 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:

Mehr

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur Unterprogramme Unterprogramme sind abgekapselte Programmfragmente, welche es erlauben, bestimmte Aufgaben in wiederverwendbarer Art umzusetzen. Man unterscheidet zwischen Unterprogrammen mit Rückgabewert

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - 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

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

Benutzeroberflächen. Java Teil 4

Benutzeroberflächen. Java Teil 4 Benutzeroberflächen Java Teil 4 Einleitung Eine grafische Benutzeroberfläche (Graphical User Interface) ermöglicht dem Benutzer die Interaktion mit dem Computer über grafische Symbole. Die GUI haben in

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

Mehr

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung. Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

Spec# Einführung. Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba

Spec# Einführung. Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba Spec# Einführung Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba Inhalt Einführung in C# Das Spec# System Die Konstrukte Vererben der Verträge System Architektur Einführung

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 1: Grundlagen

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 1: Grundlagen C# Programmierung Eine Einführung in das.net Framework C# Programmierung - Tag 1: Grundlagen 1/27/2012 1 Vorstellung Kursleiter Florian Rappl 9 Jahre Erfahrung mit C# Ausbildung zum Fachinformatiker bei

Mehr

Java Einführung Klassendefinitionen

Java Einführung Klassendefinitionen Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten O Reillys Taschenbibliothek 3. Auflage C# 5.0 kurz & gut O REILLY Joseph Albahari & Ben Albahari Aktualisierung von Lars Schulten Inhalt C# 5.0 kurz & gut... 1 Ein erstes C#-Programm... 2 Syntax... 5 Typgrundlagen...

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Die Vererbung ermöglicht es, neue Klassen auf der Basis von schon

Mehr

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach - Projekt Personalverwaltung Erstellt von Inhaltsverzeichnis 1Planung...3 1.1Datenbankstruktur...3 1.2Klassenkonzept...4 2Realisierung...5 2.1Verwendete Techniken...5 2.2Vorgehensweise...5 2.3Probleme...6

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Java I Vorlesung Vererbung und Sichtbarkeit

Java I Vorlesung Vererbung und Sichtbarkeit Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf

Beispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf 16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung 1. Begriffe Objektorientierte Programmierung mit C++ Prozedurale Programmierung Sprachen: C, Pascal, Cobol, Basic,... Objektorientierte Programmierung Sprachen: C++, C#, Java... Methode: - Gesamtproblem

Mehr

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Objekt Objekt kapselt Variablen und Routinen Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Eigenschaften jedes Objekts: Identität (identisch = mehrere

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2 Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung

Mehr

Objektorientiertes Programmieren

Objektorientiertes Programmieren Lerneinheit 1: Klassen und Objekte 2 Objektorientiertes Programmieren In diesem Kapitel erarbeiten wir die Konzepte der objektorientierten Programmierung, wie gekapselte Klassen, Instanzierung von Objekten

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Datenbanken. Proseminar Objektorientiertes Programmieren mit.net und C# Sebastian Pintea. Institut für Informatik Software & Systems Engineering

Datenbanken. Proseminar Objektorientiertes Programmieren mit.net und C# Sebastian Pintea. Institut für Informatik Software & Systems Engineering Datenbanken Proseminar Objektorientiertes Programmieren mit.net und C# Sebastian Pintea Institut für Informatik Software & Systems Engineering Agenda 1. Datenbanken 2. SQL 3. ADO.NET DataProvider (providerabhängig)

Mehr

BEISPIELKLAUSUR Softwareentwicklung:

BEISPIELKLAUSUR Softwareentwicklung: Prof. Dr. Andreas Fink Institut für Informatik Fakultät für Wirtschafts- und Sozialwissenschaften Helmut-Schmidt-Universität / Universität der Bundeswehr Hamburg BEISPIELKLAUSUR Softwareentwicklung: Objektorientierte

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester 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

Mehr

Client-Server Beziehungen

Client-Server Beziehungen Ersetzbarkeit, Client-Server Beziehungen 182.132 VL Objektorientierte Programmierung Peter Puschner nach Folien von Franz Puntigam, TU Wien Überblick Ersetzbarkeit Kovarianz, Kontravarianz, Invarianz Client-Server

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Vererbung. Was versteht man unter dem Begriff Vererbung?

Vererbung. Was versteht man unter dem Begriff Vererbung? Was versteht man unter dem Begriff Vererbung? Elternkonstrukt - Datenelemente - Methoden o Deklaration o Definition Kindkonstrukt... Main... Elternkonstrukt b = new Kindkonstrukt() b.fn() Komponenten &

Mehr

Zusammenfassung Modul 226

Zusammenfassung Modul 226 JanikvonRotz Zusammenfassung Modul 226 Objektorientiert implementieren Copyright by Janik von Rotz Version: 01.00 Freigabe: 20.05.11 Janik von Rotz Hoheneich 4, 6064 Kerns Internet www.janikvonrotz.ch

Mehr

Teil A Einführung in Microsoft Visual C# und Microsoft Visual Studio 2008 23

Teil A Einführung in Microsoft Visual C# und Microsoft Visual Studio 2008 23 Einleitung 13 Einführung 13 An wen sich dieses Buch richtet 13 Wegweiser für Ein- und Umsteiger 14 Konventionen und Features in diesem Buch 15 Konventionen 15 Weitere Features 16 Systemvoraussetzungen

Mehr

Überschreiben von Methoden

Ü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

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth Tutorial: Eigene Module und Extensions entwickeln version: 0.1 Author: Anja Beuth Table of contents 1 2 2.1 2.2 2.3 2.4 3 4 4.1 4.2 4.3 5 5.1 6 6.1 6.2 Notwendigkeit prüfen... Ein Projekt in Visual Studio

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

Mehr

WPF Bindung. Dr. Beatrice Amrhein

WPF Bindung. Dr. Beatrice Amrhein WPF Bindung Element- und Daten-Bindung Dr. Beatrice Amrhein Überblick Element-Bindung via Eigenschaften-Editor Grenzen des Eigenschaften Editors Die C# Klasse Binding Bindung an C# Objekte 2 Einführung

Mehr

Prof. W. Henrich Seite 1

Prof. 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

Mehr

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012)

13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) 13. Vererbung Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) Vererbung Konzept Protected Section Virtuelle Mitgliedsfunktionen Verwendung von Vererbung Vererbung Vererbung ist ein Mechanismus,

Mehr

Programmieren - Vererbung & Polymorphie

Programmieren - Vererbung & Polymorphie Programmieren - Vererbung & Polymorphie Reiner Nitsch r.nitsch@fbi.h-da.de Vererbung - Was ist das? Vererbung ist ein wichtiges Konzept zur Unterstützung der Wiederverwendbarkeit, wenn auch nicht das Wichtigste.

Mehr

4. Objektorientierte Programmierung mit C++

4. Objektorientierte Programmierung mit C++ 4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung/ Sprachfamilie Nicht objektorientierte Erweiterungen von C Grundlagen des Typkonzepts von C++ Ziele der Objektorientierung Objekt

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

Mehr

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0 Objects First With Java A Practical Introduction Using BlueJ Mehr über Vererbung Exploring polymorphism 1.0 Zentrale Konzepte dieses Kapitels Methoden-Polymorphie statischer und dynamischer Typ Überschreiben

Mehr

Repetitorium Informatik (Java)

Repetitorium 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

Mehr

Ereignisbehandlung 21

Ereignisbehandlung 21 Ereignisbehandlung 21 3 Ereignisbehandlung Dieses Kapitel beschäftigt sich mit der Ereignisbehandlung, d.h. der Reaktion eines Programms auf Eingaben durch benutzende Personen. Nach einigen ersten Beispielen

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs 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

Mehr

Objektorientierte Programmierung mit C++ Vector und List

Objektorientierte Programmierung mit C++ Vector und List Vector und List Ziel, Inhalt Wir lernen die Klassen vector und list aus der Standard-C++ Library kennen und anwenden. In einer Übung wenden wir diese Klassen an um einen Medienshop (CD s und Bücher) zu

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Eine Einführung in C-Funktionen

Eine Einführung in C-Funktionen Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................

Mehr

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

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

Mehr

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

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Inhalt: Version 1.7.5

Inhalt: Version 1.7.5 Inhalt: Objekte ohne Methoden Objekte mit einfachen Methoden Objekte und Methoden mit Parametern Objekte und Methoden mit Rückgabewert Objekte mit einem Array als Attribut Beziehungen zwischen Objekten

Mehr