Programmierung III. Pointer für Fortgeschrittene Marc Ruberg. Arrays von Pointern ( Zeigervektoren ): Pointer auf Pointer:
|
|
- Carin Albert
- vor 6 Jahren
- Abrufe
Transkript
1 Programmierung III Marc Ruberg 1 Pointer für Fortgeschrittene Arrays von Pointern ( Zeigervektoren ): long *zahlenptr[25]; char *strptr[1000]; Pointer auf Pointer: char **sp Zeiger auf Funktionen: Typ (*funcptr)(parameterliste) Void (*functab[])(char*) 2 1
2 Lesekurs für komplexe Deklarationen Zuerst den Bezeichner suchen, der deklariert wird. Dann Folgendes wiederholen: 1. Nach rechts schauen! () oder [] interpretieren, falls vorhanden. 2. Steht rechts nichts oder ), dann links den Stern interpretieren. Zuletzt den Grundtyp interpretieren. Beispiel: char *(*(* test)())[22] 3 Leseaufgaben char (* strptr)[50] long * (* func())[] char * (*(*funcptr)())[] 4 2
3 Dynamische Variablen (1) Dynamische Variablen auf dem Heap 5 Dynamische Variablen (2) Direkt nach der Deklaration von anker: struct dyn_var *anker; 6 3
4 Dynamische Variablen (3) anker = (struct dyn_var *) malloc(sizeof(struct dyn_var)); 7 Dynamische Variablen (4) anker->key = 1; anker->next = (struct dyn_var *) malloc(sizeof(struct dyn_var)); 8 4
5 Dynamische Variablen (5) anker->next->key = 2; anker->next->next = NIL; 9 Dynamische Variablen (6) anker->next->next = anker; 10 5
6 Dynamische Variablen (7) anker = anker->next->next; 11 Dynamische Variablen (8) anker = anker->next; 12 6
7 Dynamische Variablen (9) anker = (struct dyn_var *) malloc(sizeof(struct dyn_var)); 13 Einfach verkettete Listen (1) Typdefinition des Listenknotens: typedef struct article2 { char name[21]; long num; struct article2 *next; } listelement; 14 7
8 Einfach verkettete Listen (2) Beispiel einer einfach verketteten Liste mit vier Elementen (schematische Darstellung): Die einzelnen Elemente können auf dem Heap dynamisch generiert werden dadurch wird nur so viel Speicherplatz belegt wie auch wirklich für die Daten benötigt wird 15 Einfach verkettete Listen (3) Eine einfach verketteten Liste mit vier Elementen und konkreten Daten. 16 8
9 Doppelt verkettete Listen Beispiel einer doppelt verketteten Liste mit vier Elementen (schematische Darstellung) Vorteile: Liste kann auch rückwärts durchlaufen werden Einfüge- und Löschoperationen werden dadurch einfacher 17 C++: Manipulatoren für die Ein- und Ausgabe Siehe Beispiele 18 9
10 Deklarationen in C++ Deklarationen sind an jeder beliebigen Stelle im Quelltext möglich, also auch z. B. for (int i = 1; i <= 10; i++) { cout << i << ". Schleifendurchlauf" << endl; } 19 inline-funktionen Geht auch mit C! inline int quadrat (int x) { return x*x; } Der Maschinencode wird kopiert (kein Unterprogramm) Wird zur Steigerung der Laufzeiteffizienz benutzt (in C gibt es hierfür die Makros)
11 Funktionen mit Defaultwerten Beispiel: void ausgabe (int wert, int basis = 10); Mögliche Aufrufe: ausgabe (17, 27); ausgabe (17); //gleichbedeutend mit // ausgabe (17, 10); Nicht möglich: ausgabe(); 21 Überladung Überladung von Funktionen (siehe ueberladen1.cpp) Operatoren: punkt operator+(punkt p1, punkt p2) { punkt ergebnis; } ergebnis.x = p1.x + p2.x; ergebnis.y = p1.y + p2.y; return ergebnis; 22 11
12 Scope-Resolution-Operator :: #include <iostream> using namespace std; int a = 1; // globale Variable; int main(void) { int a = 2; cout << "global: " << ::a << endl; cout << "lokal: " << a << endl; return 0; } 23 Referenzen auf Variablen Deklaration (immer mit gleichzeitiger Initialisierung!): int zahl; int& ref = zahl; Die Referenz ref ist nun ein Alias für die Variable zahl. Alle Operationen auf ref haben unmittelbare Auswirkung auf zahl: ref = 4711; Jetzt hat zahl ebenfalls den Wert 4711! 24 12
13 Referenzen als Parameter Verwendung von Referenzen als Parameter: void swap_referenz(int& a, int& b) { int tmp; tmp = a; a = b; b = tmp; } 25 Dynamische Speicherverwaltung in C++ Statt der Funktionen malloc() und free() werden die Operatoren new und delete verwendet: int* pzahl = 0; pzahl = new int; //alternativ: int* pzahl = new int;... delete pzahl; pzahl = 0; 26 13
14 Objektorientierte Programmierung Abstrakte Datentypen Klassen und Objekte Konstruktoren und Destruktoren 27 Abstrakter Datentyp Abstrakter Datentyp = Datentypen + Funktionen Vergleich: Zugriff auf zwei Koordinaten X und Y eines Punktes Unstrukturierter Zugriff: X = 100; Y = 0; 28 14
15 Abstrakter Datentyp (2) Strukturierter Zugriff: struct Punkt { int X, Y; }; void aendern(punkt& p, int x, int y) { p.x = x; p.y = y; } Punkt einpunkt; // Aufruf aendern(einpunkt, 10, 800); einpunkt.x = -3000; //??? 29 Abstrakter Datentyp (3) Kapselung, durch Programmiersprache unterstützt: Die Funktion als öffentliche Schnittstelle gehört zur Datenkapsel. Eine direkte Änderung der Daten unter Umgehung der Funktion ist unmöglich. Der ADT ist als Software-Baustein verwendbar
16 Eigenschaften eines ADT: Der Sinn liegt darin, den richtigen Gebrauch der Daten sicherzustellen. Die tatsächliche Implementierung der Datenstrukturen ist nach außen nicht sichtbar. Logisch zusammengehörige Dinge sind an einem Ort konzentriert. Spezifikation ausschließlich durch die öffentliche Schnittstelle des ADT, die die mit ihm möglichen Operationen definert. Realisierung durch Klassen in der OOP. 31 Klassen und Objekte In C++ ist eine Klasse ein Datentyp, genauer: ein ADT. Für den Compiler ist eine Klasse eine Beschreibung später zu definierender Objekte. Ein Objekt ist die konkrete Ausprägung (Instanz) einer Klasse, es belegt Platz im Speicher. Ein Objekt hat eine Identität und einen Zustand. Der Zustand eines Objekts wird durch in der Klasse deklarierte Funktionen (Operationen, Methoden) geändert
17 Deklaration einer Klasse in C++ class Klassenname { public: Typ Elementfunktion1(); Typ Elementfunktion2(); // und weitere... private: Typ Attribut1; Typ Attribut2; // und weitere... }; 33 Beispiel Klasse für einen Ort. Operationen: getx() = X-Koordinate zurückgeben gety() = Y-Koordinate zurückgeben aendern() = X- und Y-Koordinaten ändern Siehe COrt1.cpp, COrt1.h Die Implementierung der Methoden kann außerhalb der Klassendefinition geschehen (dies ist sogar der Normalfall! 34 17
18 Initialisierung und Konstruktoren Objekte können mit Konstruktoren während der Definition initialisiert, also mit sinnvollen Anfangswerten versehen werden. Konstruktoren haben keinen Return-Typ, auch nicht void. 35 Der Standardkonstruktor Der Standardkonstruktor hat keine Argumente Beispiel: Ort1::Ort1() { // neuer Standardkonstruktor xkoordinate = 0; // Koordinaten des ykoordinate = 0; // Nullpunkts } 36 18
19 Allgemeine Konstruktoren Allgemeine Konstruktoren können Argumente haben und überladen werden. Beispiel: Ort1::Ort1(int x, int y) { xkoordinate = x; ykoordinate = y; } 37 Allgemeine Konstruktoren (2) Aufruf des Konstruktors oder auch Definition des Objekts : Ort1 nocheinort(70, 90); Konstruktoren können auch überladen werden! 38 19
20 Allgemeine Konstruktoren (3) Elementinitialisierer: Membervariablen (bzw. Teilobjekte) können mit der Anweisung membervariable(anfangswert) initialisiert werden. Mehrere Elementinitialisierer können in einer durch Kommas getrennten Liste an die Definition des Konstruktors gehängt werden (siehe Beispiele). Dies gehört nicht in die Headerdatei! 39 Destruktoren Zweck: Aufräumarbeiten für nicht mehr benötigte Objekte Wenn Destruktoren nicht vorgegeben werden, werden sie vom System automatisch erzeugt. Der häufigste Zweck ist die Speicherfreigabe, wenn der Gültigkeitsbereich eines Objekts verlassen wird. Die Reihenfolge des Aufrufs der Destruktoren ist umgekehrt wie die der Konstruktoren. Destruktoren haben keine Argumente und keinen Rückgabetyp
21 Destruktoren (2) Falls es globale Objekte gibt, wird ihr Konstruktor vor der ersten Anweisung von main() aufgerufen. Innerhalb des äußersten Blocks von main() definierte Objekte werden erst nach Verlassen von main() freigegeben. Wegen der umgekehrten Reihenfolge der Destruktoraufrufe werden globale Objekte zuletzt freigegeben. 41 Destruktoren (3) Beispiel: (siehe konstr_destr.cpp) class Beispiel { int zahl; public: Beispiel(int i = 0); // Konstruktor ~Beispiel(); // Destruktor }; Beispiel::Beispiel(int i) { // Konstruktor zahl=i; cout << "Objekt " << zahl << " wird erzeugt.\n"; } 42 21
22 Destruktoren (4) // globale Variable, durch Vorgabewert mit 0 initialisiert Beispiel ein_globales_beispiel; int main() { cout << "main wird begonnen\n"; Beispiel einbeispiel(1); { // neuer Block cout << " neuer Block\n "; Beispiel einbeispiel(2); cout << " Block wird verlassen\n "; } cout << "main wird verlassen\n"; } 43 Destruktoren (5) Ausgabe des Programms: Objekt 0 wird erzeugt. main wird begonnen Objekt 1 wird erzeugt. neuer Block Objekt 2 wird erzeugt. Block wird verlassen Objekt 2 wird zerstört. main wird verlassen Objekt 1 wird zerstört. Objekt 0 wird zerstört
23 Vererbung Was ist Vererbung? Die von einer Basisklasse abgeleitete Klasse erbt die Membervariablen und Methoden. Zusätzlich können weitere Membervariablen und Methoden ergänzt werden. Wozu Vererbung? Datenabstraktion Wiederverwendbarkeit Beispiel: Ein Objekt vom Typ Pkw oder vom Typ Lkw ist ein spezielles Objekt der Klasse Kfz
24 Vererbung (2) public-vererbung: public-elemente bleiben weiterhin public. Eine Methode der abgeleiteten Klasse kann nicht direkt auf private-elemente der Basisklasse zugreifen (aber indirekt via public-methoden der Basisklasse). Es stehen in der abgeleiteten Klasse zur Verfügung: Alle public-elemente der Basisklasse, die in der abgeleiteten Klasse zusätzlich definierten public-elemente. Mehrfache Vererbung: Eine abgeleitete Klasse kann selbst wieder Basisklasse für eine weitere von ihr abgeleitete Klasse sein
25 49 Vererbung (3) Redefinition von Elementen: Jede Membervariable und jede Methode der Basisklasse kann in der abgeleiteten Klasse redefiniert werden. Redefinition bedeutet nicht Überladung: Redefinition entspricht einer abgeleiteten-klassenlokalen Definition (mit neuem Gültigkeitsbereich). Es kann auf gleichnamige public-elemente der Basisklasse mit dem Operator :: zugegriffen werden In der selben (abgeleiteten) Klasse können Methoden wie überall überladen werden (mehrfache Redefinition)
26 Vererbung (4) Konstruktoren abgeleiteter Klassen: Aufruf-Reihenfolge: Zuerst der Konstruktor der Basisklasse, dann der Konstruktor der abgeleiteten Klasse. Besonders effizient: Vermeidung von doppelter Initialisierung von Basisklassen-Membervariablen durch einen Basisinitialisierer. Auch (zusätzlich) möglich: Elementinitialisierer. Destruktoren abgeleiteter Klassen: Aufruf-Reihenfolge: Zuerst der Destruktor der abgeleiteten Klasse, dann der Destruktor der Basisklasse (automatisch). 51 Vererbung (5) protected-deklarationen: Falls erwünscht ist, dass die Methoden einer abgeleiteten Klasse auf Elemente der Basisklasse zugreifen, die nicht als public deklariert werden sollen, so können diese Elemente als protected deklariert werden. Auf protected-elemente kann von außen nicht zugegriffen werden (wie bei private-elementen)
27 Vererbung (6) protected-vererbung (eher selten...): Alle in der Basisklasse als public oder protected deklarierten Elemente werden in der abgeleiteten Klasse zu protected-elementen. private-vererbung (eher selten...): Alle in der Basisklasse als public oder protected deklarierten Elemente werden in der abgeleiteten Klasse zu private-elementen. Es können Ausnahmen für einzelne Elemente definiert werden (werden wir nicht weiter verfolgen). 53 Polymorphie Anforderung an die Programmiersprache: Es existiert ein Zeiger auf ein Objekt, von dem noch nicht feststeht, von welchem Typ (innerhalb einer Klassenhierarchie) es sein wird. Zur Programmlaufzeit soll nun entschieden werden, welche Methoden zum Einsatz kommen dürfen. Lösung: 1. Zeiger auf Objekt der Basisklasse 2. Virtuelle Methoden 54 27
28 Polymorphie (technische Realisierung) In der Basisklasse wird der virtuellen Methode das Schlüsselwort virtual vorangestellt, z. B. virtual void display() const; Bei der Redefinition dieser virtuellen Methode in der abgeleiteten Klasse muss Folgendes beachtet werden: gleiche Anzahl und gleiche Typen der Parameter, gleicher Ergebnistyp wie in Basisklasse. Konstruktoren können nicht virtuell sein. Destruktoren sollten immer virtuell sein, zwecks vollständiger Aufräumarbeiten bei dynamisch erzeugten Objekten. 55 Statische und dynamische Bindung Statische Bindung bedeutet, dass zum Zeitpunkt der Compilierung die Adresse einer Methode bereits bekannt ist. Statische Bindung liegt vor bei allen nicht-virtuellen Methoden, bei virtuellen Methoden, wenn die Methode direkt über einen Objektnamen (und nicht indirekt über einen Pointer) aufgerufen wurde. Bei dynamischer Bindung ist erst zur Laufzeit des Programms bekannt, welche Methode aufgerufen werden soll, z. B. bei: kfzptr->display(); 56 28
29 Realisierung der dynamischen Bindung Der Compiler realisiert die dynamische Bindung mit Hilfe von virtuellen Methodentabellen (Virtual Method Tables, VMT). Diese werden für jede Klasse angelegt, die mindestens eine virtuelle Methode enthält. Eine VMT ist ein Array mit den Adressen der virtuellen Methoden der jeweiligen Klasse. Jedes Objekt einer polymorphen Klasse besitzt einen (versteckten) Zeiger auf die VMT. Mit diesem Zeiger wird immer dann bei Bedarf (d. h. beim indirekten Aufruf über einen Basisklassenzeiger) die Adresse der virtuellen Methode bestimmt. 57 Virtuelle Methodentabelle 58 29
30 Dynamische Bindung: Pro und Contra Vorteil: Bereits übersetzter Quellcode kann nachträglich erweitert werden auch wenn dieser nicht vorliegt! So kann ein Programmierer eigene Klassen aus den Klassen von gekauften Klassenbibliotheken ableiten und eigene Versionen der virtuellen Methoden erstellen. Nachteile: VMTs belegen zusätzlichen Speicherplatz Programm ist etwas weniger performant 59 Unsichere Down-Casts Es ist ohne Compiler-Fehlermeldung möglich, einen Zeiger auf ein Objekt einer abgeleiteten Klasse in einen Zeiger auf ein Objekt einer anderen abgeleiteten Klasse zu casten: Pkw* pkwptr = (Pkw*)(kfzPtr); Eine Anweisung, die sich auf ein nicht vorhandenes Element bezieht, bringt allerdings das Programm zum Absturz, wie z. B. bei pkwptr->settyp("2cv"); (Falls pkwptr zur Laufzeit auf ein Objekt vom Typ Lkw zeigen würde.) 60 30
31 Cast-Überprüfung mit dynamic_cast<> Der Operator dynamic_cast<> liefert den Wert NULL zurück, falls versucht wurde, einen Zeiger in einen nicht-kompatiblen Objekttyp zu casten. Beispiel: Pkw* pkwptr = dynamic_cast<pkw*>(kfzptr); 61 Abstrakte Basisklassen Manchmal ist es zwar sinnvoll, dass eine Basisklasse wegen besserer Übersichtlichkeit einen logischen Oberbegriff darstellt, aber direkte Objekte dieser Basisklasse wären wenig nützlich. In einem solchen Fall möchte der Programmierer dem Compiler mitteilen, dass (mindestens) eine virtuelle Methode in einer abgeleiteten Klasse redefiniert werden muss. Man nennt eine solche Methode rein virtuell oder auch abstrakt. Eine Klasse, die eine rein virtuelle Methode enthält, wird ebenfalls als abstrakte Klasse bezeichnet
32 Abstrakte Basisklassen (2) Syntax: virtual void Draw(HDC hdc) = 0; 63 friend-funktionen und friend-methoden Mitunter ist es wünschenswert, dass Funktionen, die nicht zu einer Klasse gehören, aber trotzdem sehr eng mit dieser Klasse zusammenarbeiten, einen Zugriff auf private-elemente der Klasse haben sollten. Dies ist insbesondere bei der Überladung von Operatoren der Fall und zwar aus Performance- Gründen. Die entsprechende Funktion muss in diesem Fall in der Klasse mit dem vorangestellten Schlüsselwort friend erwähnt werden
33 friend-funktionen und friend-methoden Syntax: friend Euro operator* (double x, const Euro& e); Wenn die Implementierung der friend-funktion außerhalb der Klasse erfolgt, gibt es Fälle, bei denen dies mit dem Schlüsselwort inline geschehen sollte (z. B. bei Operatoren)
Aufbau 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
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
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
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22
Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften
Mehr11.3 Virtuelle Methoden
11.3 Virtuelle Methoden Überdeckte Methoden: Betrachten wir noch einmal unsere Klassen Employee und Manager. class Employee void print() const cout
MehrMethoden. 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
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
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrC++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern
C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches
MehrVorkurs Informatik: Erste Schritte der Programmierung mit C++
Vorkurs Informatik WS 14/15 Vorkurs Informatik: Erste Schritte der Programmierung mit C++ Tag 3: Objektorientiere Programmierung 8. Oktober 2014 Vorkurs Informatik WS 14/15 > Einführung Agenda 1 Einführung
MehrInformationsverarbeitung im Bauwesen
1/21 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 8
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 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
MehrVorkurs 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:
MehrObjektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen
Objektorientierte Programmierung mit Grundlagen 27.10.2008 1 Übersicht 27.10.2008 2 1 Übersicht Klassen und Objekte in - Klassen - Objekte - Klassen - Objekte 27.10.2008 3 Übersicht 27.10.2008 4 2 Einführung
MehrC++ - Operatoren. Eigene Klassen mit neuen Funktionen
C++ - Operatoren Eigene Klassen mit neuen Funktionen Übersicht Klassen bisher Eigene Operatoren definieren 2 Bisher Durch Kapselung, Vererbung und Polymorphy können nun eigene Klassen definiert werden,
MehrJava 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.
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (2) Beziehungen zwischen Klassen Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 530 Beziehungen zwischen Klassen Assoziation
MehrKapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik
Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen
MehrKurzeinführung in C/C++ Elementare Datentypen in C++
Elementare Datentypen in C++ Anders als in Java sind in C++ die Größen der Elementaren Datentypen maschinenabhängig Die Größe der Datentypen lässt sich mit sizeof ermitteln: int n=sizeof(int) In C++ gilt
MehrDie abgeleiteten Klassen Kreis und Viereck erben die Elemente des Basisklasse und verfügen über zusätzliche Eigenschaften (Seitenlänge,
Kompaktkurs C++ Vererbung (inheritance) 1 Oft besitzen verschiedene Datentypen einen gemeinsamen Kern: Kreis und Viereck sind geometrische Figuren; sie haben eine Kantenzahl, eine Fläche, einen Umfang
MehrProgrammieren - 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.
MehrAnwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie
Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,
MehrVererbung. 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Ü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
MehrDer Operator this. Wir betrachten nochmals die Klassendefinition von Ballon.
Der Operator this Wir betrachten nochmals die Klassendefinition von Ballon. public class Ballon { private int durchmesser; private int x1, y1; private Color farbe =Color.black; // Konstruktor ohne Farbe
MehrJava 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
Mehr3D Programmierpraktikum: Einführung in C++ - Teil 2
3D Programmierpraktikum: Einführung in C++ - Teil 2 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 4. Mai 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum
MehrProgrammieren 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
MehrAbend 7 Vererbung und Polymorphie, Abstrakte Klassen
Abend 7 Vererbung und Polymorphie, Abstrakte Klassen Ziel, Inhalt Wir sehen heute weitere Beispiele für Polymorphie und virtuelle Methoden. Wir lernen auch Klassen kennen, von denen man keine Objekte erzeugen
MehrAdvanced Programming in C
Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
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
MehrEinführung in C++ Vererbung und Polymorphismus
Einführung in C++ Vererbung und Polymorphismus Ablauf Grundlegende Eigenschaften der Vererbung in C++ Redefinition und Namensauflösung Eine einfache Klassenhierarchie in Java und C++ Redefinition von virtuellen
MehrVerwendung von Klassen in C++
Verwendung von Klassen in C++ Heute: Benutzerdefinierte Datentypen (Konkrete Klassen) Vektoren Komplexe Zahlen Adressdatei Morgen: Objektorientierte Programmierung (Abstrakte Klassen) Vererbung Polymorphie
MehrÜbersicht. Vorstellung des OO-Paradigmas
Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java
MehrJavakurs 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
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
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
MehrÜberladen von Operatoren
- Überladen des Indexoperators [] - Überladen des Ausgabeoperators > Programmieren in C++ Informatik FH Trier C++12-1 ähnlich dem Überladen von Funktionen Überladen
Mehr1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation des Quellcodes 4. Werte- und Referenzsemantik
Software-Technik: Vom Programmierer zur erfolgreichen Software-Technik: Vom Programmierer zur erfolgreichen 1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation
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.
Mehr1. 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:
MehrObjektorientierte Programmierung
Programmierkurs C++ Kapitel 7:Objektorientierte Programmierung Seite 1 Objektorientierte Programmierung If programming in PASCAL is like put in a straightjacket, then programming in C is like playing with
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
MehrProgrammiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 9. Zeiger Arbeitsspeicher / Adressen Der Arbeitsspeicher des Computers (RAM) besteht aus einem Feld von Speicherzellen, beginnend bei Adresse
MehrEinfü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
Mehr7 Vererbung. Modul Programmieren mit C++ Kapitel Vererbung
7.1 7 Vererbung Eine von der Basisklasse B abgeleitete Klasse A erbt alle Attribute und Methoden von B. Ein Objekt der Klasse A besitzt ein Slice der Klasse B und ein Slice der Klasse A. Jeder Konstruktor
Mehrmagnum C++ WALTER SAUMWEBER kompakt komplett kompetent
magnum C++ WALTER SAUMWEBER kompakt komplett kompetent Quickview... 5 Liebe Leserin, lieber Leser... 13 Teil 1 Grundlagen... 15 1 Was ist Programmieren?... 17 1.1 Was ist eigentlich ein Computerprogramm?...
MehrC++-Zusammenfassung. H. Schaudt. August 18, 2005
C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:
Mehr3 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
MehrPass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl
Funktionen Zusammenfassung von Befehlssequenzen als aufrufbare/wiederverwendbare Funktionen in einem Programmblock mit festgelegter Schnittstelle (Signatur) Derartige prozedurale Programmierung erlaubt
MehrBeispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der
Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert
MehrProgrammierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
MehrSilke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode
Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode
Mehr13. 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,
MehrObjektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11
Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11 Wozu objektorientiertes Programmieren? Die Welt besteht für den Menschen
Mehr01. Grundprinzipien der Vererbung
01. Grundprinzipien der Vererbung 1.1 Grundidee der Vererbung Bei der Analyse eines Problems (z.b. Baukasten) stellt man beispielsweise fest, dass 67 % an Daten/Funktionen immer vorkommen 25 % an Daten/Funktionen
MehrInhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte
Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)
MehrKlassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
Mehr12. 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!
MehrJava Einführung Methoden. Kapitel 6
Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden
MehrThemen. Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren
Themen Statische Methoden inline Methoden const Methoden this Zeiger Destruktor Kopierkonstruktor Überladen von Operatoren Statische Methoden Klassenmethoden Merkmal der Klasse nicht eines einzelnen Objekts
MehrProbeklausur: 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,
MehrEine 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,
Mehr5.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
MehrAngewandte 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
MehrProgrammieren in C++ Überladen von Methoden und Operatoren
Programmieren in C++ Überladen von Methoden und Operatoren Inhalt Überladen von Methoden Überladen von Operatoren Implizite und explizite Konvertierungsoperatoren 7-2 Überladen von Methoden Signatur einer
Mehr2. Semester, 2. Prüfung, Lösung
2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter
MehrBeziehungen zwischen Objekten
1/19 Beziehungen zwischen Objekten Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/19 Outline 1 Vererbung (Wiederholung)
MehrC/C++-Programmierung
1 C/C++-Programmierung new/delete, virtual, Typumwandlungen Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 new/delete
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS2013/14 Inhalt Übung(Aufklärung) Vererbung(wdh.) Initilisierung bei Vererbung
Mehr10. Klassen. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)
10. Klassen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Objektorientierte Programmierung!Das Konzept der Klassen!Members!Objekte!Konstruktoren und Destruktoren!this-Pointer!Public und Private
MehrFunktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
MehrTeil 9: Vererbung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden
Teil 9: Vererbung Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 9 Vererbung... 3 9.1 Motivation... 3 9.2 Deklaration und Zugriffsrechte...
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 Templates Nochmal zusammengefasst Die Basis der OOP- Zusammengefasst 2 Templates Programmiersprachen
MehrObjektorientiertes Programmieren für Ingenieure
Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen
MehrDie Programmiersprache C99: Zusammenfassung
Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach
MehrDynamischer Speicher
Dynamischer Speicher C-Kurs 2012, 3. Vorlesung Tino Kutschbach tino.kutschbach@campus.tu-berlin.de http://wiki.freitagsrunde.org 13. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike
MehrC++ - Eine Ubersicht fur Java-Programmierer
C++ - Eine Ubersicht fur Java-Programmierer Daniel Wasserrab Lehrstuhl fur Programmierparadigmen Universitat Karlsruhe 23. April 2008 C++ I Entwickelt Anfang der 80er von Bjarne Stroustrup I Beeinut von
Mehr3. Semester : 1. Prüfung
3. Semester : 1. Prüfung Name : Die gesamte Prüfung bezieht sich auf die!! Prüfungsdauer: 90 Minuten mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter geschrieben werden
MehrEinführung in C++ mit Microsoft VS
Einführung in C++ mit Microsoft VS Gliederung Allgemeines zu C++ und Unterschiede zu Java Header-Files Zeiger/Strukturen Namespaces Programmierstil Einführung in Microsoft VS Projekte und Solutions Debugger
MehrUlla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp
Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden mitp Inhaltsverzeichnis Einleitung 19 Grundlagen 21 Entwicklung und Eigenschaften von C++ 22 Objektorientierte Programmierung 24 Erstellen
MehrWerner Achte rt DATA BECKER
Werner Achte rt. DATA BECKER Inhaltsverzeichnis 1. Einführung 21 1.1 Entwurf von Anwendungssystemen 23 1.2 Entwicklung eines Programms 25 1.3 Objektorientierte Programmierung 29 1.4 Darstellung objektorientierter
MehrObjektorientierte 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
MehrEinführung in den Einsatz von Objekt-Orientierung mit C++ I
Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen
MehrAuD-Tafelübung T-B5b
6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit
MehrJava, OO und UML Fortsetzung
Java, OO und UML Fortsetzung Das Objektorientierte Paradigma OO bildet keine geschlossene theoretisch abgegrenzte Basis (wie z.b. das Relationsmodell relationaler Datenbanken) OO ist eine Sammlung und
MehrProbeklausur: 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,
MehrVererbung und Polymorphie
Vererbung und Polymorphie WiMa-Praktikum 1, Teil C++, Tag 5 Christoph Ott, Büro: Helmholtzstr.18, E22 Tel.: 50-23575, Mail: christoph.ott@uni-ulm.de Institut für Angewandte Informationsverarbeitung 29.08.08
MehrZiel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind
Templates und Containerklassen Ziel, Inhalt Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen 1 Ziel, Inhalt
MehrProgrammieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Programmieren II Vererbung. Einleitende Bemerkungen
Einleitende Bemerkungen Einleitende Bemerkungen Ideen hinter der objektorientierten Programmierung Objekte (/* Instanzen einer Klasse */) im Mittelpunkt Objekte bilden Einheit aus Daten (/* Attributen,
MehrUnterprogramme. 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Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()
Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten
MehrVorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus
Vorlesung Programmieren Vererbung und Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Bisher: Klassen und Objekte Haupteigenschaften:
Mehr7. 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
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrVererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
MehrEinstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern
Mehr