Betriebssystembau: Übungen. Betriebssystembau: Übungen. Betriebssystembau: Einführung C++ Literatur
|
|
- Laura Straub
- vor 7 Jahren
- Abrufe
Transkript
1 Betriebssystembau: Übungen 2 SWS Tafel übung (hier :-)) und 2 SWS Rechnerübung Die Tafelübung vermittelt Grundlagen der PC-Hardware-Architektur Grundwissen zur Bearbeitung der Rechnerübungen C++-Programmierkenntnisse Die Rechnerübung (Horst und Jochen) dient zum Bearbeiten der Rechneraufgaben ist zum Fragen stellen da und ist der Ort zum Abgeben der Aufgaben! Es gibt keine theoretischen Aufgaben! Michael Engel <michael.engel@udo.edu> 1 Betriebssystembau: Übungen Rechnerübung Aufgaben alle 2-3 Wochen, insgesamt 6 Aufgaben optional: 7. Aufgabe eine OOStuBS-Anwendung Bearbeitung in Dreiergruppen Anwesenheit zu den Abgabeterminen erforderlich! Abgabe innerhalb der Gruppe soll reihum erfolgen Jeder Gruppenteilnehmer sollte also die Lösung zu jeweils 2 der 6 Aufgaben demonstrieren und erläutern Demonstration auf echter PC-Hardware, nicht im Emulator Bearbeitung der Aufgaben auch zu Hause möglich auf Linux oder mittels vmware-image (debian) Michael Engel <michael.engel@udo.edu> 2 Betriebssystembau: Einführung C++ Grundlage für die Rechnerübungen Voraussetzungen: Programmierkenntnisse in einer objektorientierten Sprache (z.b. Java) Wir konzentrieren uns auf die Unterschiede zwischen Java und C++ und die kleinen Eigenheiten, auf die man achten muss, wenn man C++ für Systemprogrammierung einsetzt Michael Engel <michael.engel@udo.edu> 3 Literatur Es gibt jede Menge Bücher und Tutorials zu C++ Eine gute Einführung ( 17,95) ist Marko Meyer C++ programmieren im Klartext Pearson Verlag, ISBN Kostenlos und gut Folien und Skript von Prof. Ring, Uni Siegen: und außerdem der Kurs Von Java nach C++ von Prof. Müller und Frank Weichert, die Basis für diese Folien Michael Engel <michael.engel@udo.edu> 4
2 C++ C++ - Übersetzungsprozess Wie so üblich: Hello, World in C++ Java-Version: #include <iostream> int main() cout << "Hello, world" << endl; return 0; import java.awt.*; class Test public static void main(string[] argv) System.out.println( Hello, world ); Michael Engel <michael.engel@udo.edu> 5 Sourcecode - Präprozessor Zwei Dateiendungen:.cc C++ Source Code.h Header Files mit Definitionen von Datentypen, Konstanten, Präprozessor-Makros etc. Die Endungen sind Konvention, aber nicht zwingend oft z.b. auch.cpp,.hpp o.ä. Header-Files werden mit Hilfe des Präprozessors textuell in.cc-files integriert #include Anweisung: #include <iostreams> für System-Headerfiles #include device.h für eigene Headerfiles Michael Engel <michael.engel@udo.edu> 7 Michael Engel <michael.engel@udo.edu> 6 Sourcecode - Präprozessor Weitere Präprozessorfunktionen: Makrodefinition, z.b. für Konstanten: #define pi #define VGA_BASE 0xb8000 ohne Semikolon am Ende! Bedingte Compilierung: #ifdef DEBUG. #endif #ifndef VGA_BASE #define VGA_BASE 0xb8000 #endif Der Präprozessor expandiert Makros im Source Code, fügt Header-Files ein und erzeugt eine neue Textdatei, die der Compiler vorgesetzt bekommt Michael Engel <michael.engel@udo.edu> 8
3 Sourcecode - Präprozessor Wichtige Anwendung für #define und #ifndef: Verhindern von mehrfacher Inklusion von Header- Dateien Header-Dateien dürfen wiederum Header-Dateien inkludieren -> Ringschluss #ifndef cgastr_include #define cgastr_include #include "object/o_stream.h" #include "machine/cgascr.h" class CGA_Stream /* Hier muesst ihr selbst Code vervollstaendigen */ /* Hier muesst ihr selbst Code vervollstaendigen */ ; #endif Michael Engel <michael.engel@udo.edu> 9 Sourcecode - Linker Der Linker faßt eine Menge an Objektdateien (.o) sowie bei Bedarf Libraries (.a,.so) zu einem ausführbaren Programm zusammen: Auflösung von Referenzen Sortierung der einzelnen Teile der Objektdateien im Speicherabbild der ausführbaren Datei Normalerweise gibt es zwei Link-Modi: dynamisch Libraries werden erst zur Zeit der Ausführung des Programms zum Objektcode geladen und Referenzen darin aufgelöst statisch Libraries werden zur Link-Zeit in ein komplett ausführbares Programm integriert Vor-/Nachteile beider Ansätze? Welcher davon ist für unsere Systementwicklung geeignet? Michael Engel <michael.engel@udo.edu> 11 Sourcecode - Compiler Erzeugt aus vom Präprozessor vorverarbeitetem Source Code eine Objektdatei (.o) Diese ist i.a. nicht direkt ausführbar, da noch Referenzen auf Funktionen oder Variablen in anderen Objektdateien enthalten sein können Der Compiler überprüft den Source Code auf Syntaxfehler und erzeugt ggf. Fehlermeldungen (errors) Warnungen (warnings) Eine Objektdatei wird nur bei fehlerfreier Compilierung erzeugt Warnungen führen nicht zum Abbruch des Übersetzungsvorgangs! Sie sollten aber beachtet werden Klassen in C++ Michael Engel <michael.engel@udo.edu> 10 Eine Klasse in C++ besteht aus Deklaration in Headerdatei (z.b. keyctrl.h) class Keyboard_Controller ; und Implementierungsdatei (keyctrl.cc) #include machine/keyctrl.h Name der.h/.cc-files und Name der Klasse müssen nicht übereinstimmen! Michael Engel <michael.engel@udo.edu> 12
4 Aufbau der Headerdatei Ausschnitt aus keyctrl.h: class Keyboard_Controller private: unsigned char code; unsigned char prefix; Keyboard_Controller (); ~Keyboard_Controller (); ; // Attribute // Konstruktor // Destruktor Key key_hit (); // Methoden void reboot (); void set_repeat_rate (int speed, int delay); Aufbau der Headerdatei Beginn der Klassendefinition mit Schlüsselwort class Klassen sind immer public Attribute (Instanz-)Variablen dürfen bei der Deklaration nicht initialisiert werden Konstruktoren und Destrukturen Konstruktoren: Instanziierung von Objekten Destruktoren: Löschen instanziierter Objekte Deklaration von Methoden Klassendefinition wird mit Semikolon beendet! Michael Engel <michael.engel@udo.edu> 13 Aufbau der Implementierungsdatei Einbinden der Header-Datei mit #include Durch den Klassennamen und den Bereichsoperator :: wird die Zugehörigkeit zur Klasse gekennzeichnet: #include keyctrl.h Keyboard_Controller::Keyboard_Controller () Keyboard_Controller::~Keyboard_Controller () void Keyboard_Controller::reboot () C++-Konzepte Michael Engel <michael.engel@udo.edu> 14 Kontrollstrukturen und Variablentypen in C++ Komplexe Datentypen (structs) Zeiger (Pointer) und Referenzen Vererbung und Mehrfachvererbung Virtuelle Funktionen Überladen von Operatoren Michael Engel <michael.engel@udo.edu> 15 Michael Engel <michael.engel@udo.edu> 16
5 Kontrollstrukturen und Variablentypen bedingte Anweisungen, Schleifen, Verbundanweisungen (Blöcke) sind identisch in C++ und Java! In C++ sind globale Funktionen möglich, in Java dagegen müssen Methoden immer innerhalb einer Klasse stehen insbesondere lassen sich in C++ auch normale C- und Assembler-Funktionen aufrufen und man kann C++-Funktionen als von C und Assembler aufrufbar deklarieren mittels extern C (wird für OOStuBS aber nicht benötigt) eine wichtige globale Funktion ist die main -Funktion :-) Kontrollstrukturen und Variablentypen Arrays (Felder) werden in C++ wie folgt definiert: int a[4]; // oder int a[] = 1,2,3; // mit Initialisierung In C++ findet dabei keine Überprüfung der Array-Grenzen zur Laufzeit statt! Folge: die berüchtigten Buffer Overflows, bei denen z.b. über die Grenzen von Arrays hinaus Werte (andere Variableninhalte, Rücksprungadressen auf dem Stack etc.) überschrieben werden potentiell großes Sicherheitsproblem! Variablen haben keine Default-Werte, müssen also immer explizit initialisiert werden. Erfolgt das nicht, generiert der Compiler eine warning (aber keinen error!) Die Speicherverwaltung muss durch den Programmierer erfolgen. Ein Garbage Collector wie in Java ist nicht vorhanden Michael Engel <michael.engel@udo.edu> 17 Typwandlung (type casting) In C++ können Typen wie in Java explizit gewandelt werden: (Typ) Ausdruck // in C++ und Java Beispiel: int a=3; double b=(double)a/2; // b==1.5 Eine weitere Möglichkeit, die nur in C++ verfügbar ist: Typ(Ausdruck) Beispiel: int a=3; double b=double(a)/2; // b==1.5 Michael Engel <michael.engel@udo.edu> 19 Wertebereiche Michael Engel <michael.engel@udo.edu> 18 In C++ existieren vorzeichenbehaftete und nicht vorzeichenbehaftete Typen (char, short, int, long), z.b.: int von -2^31 bis 2^31-1 unsigned int von 0 bis 2^32-1 Bei arithmetischen Operationen erfolgt keine Überprüfung auf Overflow bzw. Underflow! => Sicherheitsproblem! Beispiel: unsigned int i = 0; i = i - 1; // i == Die Wertebereiche, die einzelne Variablentypen einnehmen können, sind maschinenabhängig! z.b. kann ein int 32 oder 64 Bit lang sein Mittels typedef lassen sich neue Namen für Datentypen definieren: typedef int Index; Index a=3; Michael Engel <michael.engel@udo.edu> 20
6 Komplexe Datentypen enums: Aufzählungstypen enum caps_lock = 4, num_lock = 2, scroll_lock = 1 ; Oft Alternative zu #defines structs: Benutzerdefinierte Datentypen struct rechteck int xp, yp; int width, height; int color; ; Verwendung: Pointer (Zeiger) Ein Pointer ist eine Variable, deren Wert auf die Speicheradresse einer Variablen, einer Struktur oder eines Objekts zeigt Der Pointer ist ein eigener Datentyp Er ist typisiert (bezogen auf den Datentyp, auf den gezeigt wird) Durch Symbol * gekennzeichnet Beispiel: kein Pointer: int a; Pointer auf eine Integer-Variable: int *a; struct rechteck r; r.xp = 100; r.yp = 200; r.width = 20; r.height = 40; Pointer (Zeiger) Michael Engel <michael.engel@udo.edu> 21 Eine Adresse ist die Speicherstelle, die einer Variablen oder einem Objekt zugeordnet ist Bei der Betriebssystemprogrammierung kann dies auch die Speicherstelle sein, an der ein bestimmtes Gerät Speicher oder Kontrollregister einblendet z.b. der Bildschirmspeicher der Grafikkarte Der Inhalt ist dann der Wert, der an einer Speicherstelle gespeichert ist Die Größe des Inhalts (in Bytes) ist vom jeweiligen zugeordneten Datentyp abhängig z.b. 1 Byte für char, 2 Byte für short usw. Diese Größen sind in C/C++ architektur- und compilerabhängig, also nicht portabel!!! Michael Engel <michael.engel@udo.edu> 23 Pointer (Zeiger) Michael Engel <michael.engel@udo.edu> 22 Ein Pointer ist also eine Variable, in der eine Adresse gespeichert wird. Diese Variable hat den identischen Typ zu der Variablen, deren Adresse in ihr gespeichert ist Es existieren zwei Operatoren zu Pointern: Dereferenzierungsoperator * Gibt den Wert zurück, der an der Adresse gespeichert ist, auf die die Pointervariable zeigt Referenzoperator & Liefert die zu einer Variablen gehörende Speicheradresse int a; int *adresse_von_a; // Entweder adresse_von_a = &a; *adresse_von_a = 42; // oder einfach mit selbem Ergebnis a = 42; Michael Engel <michael.engel@udo.edu> 24
7 Pointer (Zeiger): Beispiel Pointer (Zeiger): Beispiel Code: #define CGA_START 0xb8000 char *pos; int x=20, y=20; pos = (char *)CGA_START + 2*(x + y*80); *pos = 'Q'; char *pos; definiert einen Pointer pos, der auf eine Variable vom Typ char zeigt pos = (char *)CGA_START + 2*(x + y*80); initialisiert den Pointer mit dem Wert, der dem Zeichen an Position (x,y) im Bildschirmspeicher (Basisadresse CGA_START) entspricht *pos = 'Q'; schreibt das ASCII-Zeichen (char) 'Q' in die Speicherzeille, auf die der Pointer pos verweist Michael Engel <michael.engel@udo.edu> 25 Referenzen als Parameter Neben den normalen Referenzen der Art int *a; int b; a = &b; Michael Engel <michael.engel@udo.edu> 26 Einfache Vererbung Klasse keyboard_interrupt erbt von Klasse interrupt Vererbungsoperator : (entspricht extends in Java) können Referenzen auch als Funktionsparameter auftauchen: int& max(int& a, int& b) if (a>b) return a else return b; interrupt.h: keyboard_interrupt.h: Dies entspricht einem call by reference, d.h., es wird eine Referenz auf die entsprechende Variable übergeben und auch zurückgegeben. Der Aufruf erfolgt dann so: int a=5, b=7; max(a,b)++; // erhöht b um 1! Michael Engel <michael.engel@udo.edu> 27 class interrupt #include interrupt.h class keyboard_interrupt : public interrupt keyboard_interrupt(); ~keyboard_interrupt(); Michael Engel <michael.engel@udo.edu> 28
8 Mehrfachvererbung Klasse keyboard_interrupt erbt von Klassen interrupt und keys: keyboard_interrupt.h: #include interrupt.h class keyboard_interrupt : public interrupt, public keys keyboard_interrupt(); ~keyboard_interrupt(); Virtuelle Funktionen Virtuelle Funktionen sind Funktionen einer Basisklasse. Eine abgeleitete Klasse kann sie überschreiben und übernimmt damit die Ausführung der Funktion für ihre Klassenmitglieder. das funktioniert auch mit nicht virtuellen Klassen Das Besondere an virtuellen Funktionen ist, dass das Objekt selbst weiss, zu welcher abgeleiteten Klasse es gehört und seine zugehörige Klassenfunktion ruft. Nicht jede Funktion ist standardmäßig virtuell, es muss explizit das Schlüsselwort virtual verwendet werden! (im Gegensatz zu Java) Michael Engel <michael.engel@udo.edu> 29 Michael Engel <michael.engel@udo.edu> 30 Virtuelle Funktionen Ausgabe: Derived ohne das virtual vor void display(): Base #include <iostream> class base virtual void display() cout<< \nbase ; ; class derived : public base void display() cout<< \nderived ; ; void main() base *ptr = new derived(); ptr->display(); Virtuelle Destruktoren Es gibt eine Faustregel, die besagt, dass jede Klasse mit virtuellen Funktionen auch einen virtuellen Destruktor haben soll. Da ein nicht virtueller Destruktor nicht gewährleistet, dass abgeleitete Klassen ordnungsgemäß abgebaut werden, kann ein nicht virtueller Destruktor sogar so interpretiert werden, dass der Autor ein Ableiten seiner Klasse nicht vorgesehen hat und wohl auch nicht empfielt. Michael Engel <michael.engel@udo.edu> 31 Michael Engel <michael.engel@udo.edu> 32
9 Überladen von Operatoren Wurde in Java nicht realisiert Operatoren funktionieren abhängig vom Datentyp, auf dem sie operieren Beispiel: Operator + für int, float, double-variablen wird die jeweilige Additionsfunktion für den entsprechenden Zahlentyp aufgerufen für String-Objekte kann der + -Operator so überladen (=umdefiniert) werden, dass er die beiden String-Operanden konkateniert In OOStuBS: Operator << für int-werte bewirkt der << -Operator, dass der in der Variablen enthaltene Zahlenwert um n Bits (2. Operand) nach links geschoben wird z.b. ist 2 << 3 == 16 für Ausgabestreams ist der Operator ein Verkettungsoperator, siehe Hello World : cout << "Hello, world" << endl; Operator >> entsprechend für Eingabestreams Michael Engel <michael.engel@udo.edu> 33 Überladen von Operatoren Es können nur von der Sprache definierte Operatoren überladen, die Definition neuer Operatoren ist nicht möglich Unterstützt werden dabei unäre Operatoren: + - * & ~! > ->* binäre Operatoren: + - * / % ^ & << >> += -= *= /= %= ^= &= = <<= >>= < <= > >= ==!= &&, [] () new new[] delete delete[] Michael Engel <michael.engel@udo.edu> 34 Überladen von Operatoren: Beispiel Addition von ganzen Zahlen zu einem Datum: class tdatum //. tdatum operator+(int Tage); ; tdatum tdatum::operator+(int Tage) // Berechnung des Datums return *this; Die Addition liefert ein neues Datum zurück und als rechter Operand ist eine ganze Zahl zulässig. So kann das Datum durch einfache Addition um 14 Tage weitergeschoben werden: tdatum heute; heute = heute + 14; Michael Engel <michael.engel@udo.edu> 35 Systemprogrammierung in C++ Keine Laufzeitumgebung vorhanden! man muss alles selber von Hand bauen Damit sind auch keine Objekte dynamisch instanziierbar! kein new und delete möglich woher soll auch die passende Speicherverwaltung dazu kommen? Für Spezialisten das geht auch nicht: Exceptions Assertions runtime type information Ein falscher Pointer kann das Ende sein der Rechner hängt und das war's keine segmentation violation, keine core dumps Michael Engel <michael.engel@udo.edu> 36
Software ubiquitärer Systeme 1. Übung
Software ubiquitärer Systeme 1. Übung http://ess.cs.unidortmund.de/de/teaching/ss2013/sus/index.html Christoph Borchert http://ess.cs.tu-dortmund.de/~chb AG Eingebettete Systemsoftware Informatik 12, TU
MehrSoftware ubiquitärer Systeme 1. Übung
Software ubiquitärer Systeme 1. Übung http://ess.cs.uni-.de/de/teaching/ss2015/sus Horst Schirmeier http://ess.cs.tu-.de/~hsc AG Eingebettete System Informatik 12, TU Dortmund Überblick Organisatorisches
MehrSoftware ubiquitärer Systeme 2. Übung
Software ubiquitärer Systeme 2. Übung http://ess.cs.unidortmund.de/de/teaching/ss2013/sus/index.html Christoph Borchert http://ess.cs.tu-dortmund.de/~chb AG Eingebettete Systemsoftware Informatik 12, TU
MehrSoftware ubiquitärer Systeme 2. Übung
Software ubiquitärer Systeme 2. Übung http://ess.cs.uni-.de/de/teaching/ss2014/sus Christoph Borchert http://ess.cs.tu-.de/~chb AG Eingebettete System Informatik 12, TU Dortmund Überblick C++ Crashkurs
MehrBetriebssystembau. 2. Übung. Olaf Spinczyk und Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund
Betriebssystembau 2. Übung Olaf Spinczyk und Michael Engel Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/
MehrC++ Notnagel. Ziel, Inhalt. Programmieren in C++
C++ Notnagel Ziel, Inhalt Ich versuche in diesem Dokument noch einmal die Dinge zu erwähnen, die mir als absolut notwendig für den C++ Unterricht und die Prüfungen erscheinen. C++ Notnagel 1 Ziel, Inhalt
MehrEinführung in C. EDV1-04C-Einführung 1
Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags
MehrVon Java nach C++ Dr. Frank Weichert Lehrstuhl Informatik VII Technische Universität Dortmund http://ls7-www.cs.uni-dortmund.de
Von Java nach C++ Dr. Frank Weichert Lehrstuhl Informatik VII Technische Universität Dortmund http://ls7-www.cs.uni-.de Von Java nach C++, Lehrstuhl Informatik VII, TU Dortmund 1 Übersicht Einleitung Literatur
MehrVon Java nach C++ Frank Weichert, Heinrich Müller Informatik VII Universität Dortmund http://ls7-www.cs.uni-dortmund.de
Von Java nach C++ Frank Weichert, Heinrich Müller Informatik VII Universität Dortmund http://ls7-www.cs.uni-dortmund.de Von Java nach C++, LS VII, Universität Dortmund, SS 2006 1 Übersicht Einleitung Literatur
MehrBetriebssystembau (BSB)
Betriebssystembau (BSB) 2. Übung http://ess.cs.tu-dortmund.de/de/teaching/ws2014/bsb/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 1)
DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29
Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente
MehrProgrammiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 2)
DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und
MehrC++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
MehrGrundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Knopp 03.05.2017 Folie 1/34 GK C++: IDE, Klassenhierarchien Martin Knopp 03.05.2017 IDE Integrated Development Environment Wir empfehlen: Qt Creator (Bestandteil
MehrThema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen
1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:
MehrC++ vs. Java. Hello world! Java C++ class HelloWorld { static public void main(string args) { System.out.println("Hello World!
Hello world! Java class HelloWorld { static public void main(string args) { System.out.println("Hello World!"); } } C #include main() { printf("hello World!\n"); } C++ #include using
MehrUnterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
MehrGrundkurs C++ IDE Klassenhierarchien
Grundkurs C++ IDE Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 Folie 1/35 GK C++: IDE, Klassenhierarchien Martin Knopp & Johannes Feldmaier 20.04.2016 IDE Integrated Development Environment
MehrVorlesungsprüfung Programmiersprache 1
Vorlesungsprüfung Programmiersprache 1 Termin der Prüfung: 1) Di 20.03.2018 16:15 17:00 HSB 3 2) Di 15.05.2018 16:15 17:00 HSB 3 3) Di 12.06.2018 16:15 17:00 HSB 3 Stoffgebiete: 1) Ganzzahltypen: char,
MehrInstitut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke
Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie
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
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
MehrObjektorientierung: Klassen und Objekte
Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen
MehrEinleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++
Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend
MehrProgrammierkurs C/C++
Blockkurs: "Einführung in C/C++" Programmierkurs C/C++ Donnerstag Sandro Andreotti andreott@inf.fu-berlin.de WS 2008/09 1 Structs Blockkurs: "Einführung in C/C++" 2 Structs sind Bündel von Variablen (unter
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:
MehrCrashkurs C++ Wiederholung
Crashkurs C++ Wiederholung #include int main(void) { int i, j; bool is_prime; for (j = 1; j < 1000; j += 2) { is_prime = true; for (i = 3; i
Mehr7. Übung Informatik II - Objektorientierte Programmierung
7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber
MehrC++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.
C++ Klassen, Vererbung Philipp Lucas phlucas@cs.uni-sb.de Sebastian Hack hack@cs.uni-sb.de Wintersemester 2008/09 saarland university computer science 1 Inhalt Klassen in C++ Sichtbarkeit Erzeugen von
MehrRO-Tutorien 3 / 6 / 12
RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 2 AM 06./07.05.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
MehrJava Einführung VARIABLEN und DATENTYPEN Kapitel 2
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen
MehrInhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15
Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen
MehrVon Java nach C++ Frank Weichert Lehrstuhl Informatik VII Technische Universität Dortmund
Von Java nach C++ Frank Weichert Lehrstuhl Informatik VII Technische Universität Dortmund http://ls7-www.cs.uni-.de Vorkurs Informatik, Von Java nach C++, LS VII, TU Dortmund, WS 2009/2010 1 Übersicht
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
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens mit C++ und Matlab SS2013 Inhalt Bis jetzt: Heute: Entwicklungsumgebung
MehrFragen zur OOP in Java
- 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...
MehrRO-Tutorien 15 und 16
Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 2 am 04.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft
MehrC++ - Objektorientierte Programmierung Konstante und statische Elemente
C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
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
MehrZeiger, Arrays und Strings in C und C++
Zeiger, Arrays und Strings in C und C++ 1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für
Mehr8. Referenzen und Zeiger
8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen
MehrC++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen
C++ Kurs Teil 1 "hello world" Vergleich von C++ und Java Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Spezialitäten Schlüsselwort 'const', Copy Constructor,
MehrRO-Tutorien 17 und 18
RO-Tutorien 17 und 18 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery TUTORIENWOCHE 2 AM 10.05.2012 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der
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:
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2005/06 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl
MehrZeiger in C und C++ Zeiger in Java und C/C++
1 Zeiger in Java und C/C++ Zeigervariable (kurz: Zeiger, engl.: pointer): eine Variable, die als Wert eine Speicheradresse enthält Java: Zeiger werden implizit für Referenztypen (Klassen und Arrays) verwendet,
MehrC++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen Leibniz Universität IT Services Anja Aue Zeiger (Pointer) Verweis auf eine Speicherstelle. Speicherung einer Speicheradresse.
MehrKurzeinführung in C/C++ Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Einleitung
Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend
MehrProgrammieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
MehrPeter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp
Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden ffl mitp Inhaltsverzeichnis Einleitung 19 1 Grundlagen 21 Entwicklung und Eigenschaften von C + + 22 Objektorientierte Programmierung
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrProgrammierung und Angewandte Mathematik
Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden
MehrProgrammieren II Abstrakte Klassen / Virtuelle Methoden. Programmieren II Abstrakte Klassen / Virtuelle Methoden
Einleitende Bemerkungen Einleitende Bemerkungen Aspekte Aufbau von sinnvollen Klassenhierarchien Verwaltung von Objekten unterschiedlichen Typs Mitarbeiter Besonderheiten der Anwendung jeder Angehörige
MehrObjektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string
MehrPraxis der Programmierung
Template-Funktionen und -Klassen Einführung in Java Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn 1 Template-Funktionen 2 Minimumfunktion und offene Typen Aufruf
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
MehrPolymorphismus 179. Function.h. #include <string>
Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function
MehrProgrammiersprachen Einführung in C
Programmiersprachen Einführung in C 14 Vertiefung einiger Themen Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen in
MehrLösung der OOP-Prüfung WS12/13
2.1.2013 Lösung der OOP-Prüfung WS12/13 1. Aufgabe a) Da der Konstruktor im protected-bereich steht, können keine eigenständigen Objekte der Klasse angelegt werden. Durch den protected-konstruktor wird
MehrC++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung
Mehreinlesen n > 0? Ausgabe Negative Zahl
1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen
MehrObjektorientierte Programmierung
C++ Objektorientierte Programmierung Erweiterung von selbstdefinierten Datentypen (struct) zu Klasse. Eine Klasse besteht dann aus - Attributen (Untertypen wie struct) und zusätzlich - aus Methoden (Funktionen
MehrEinführung in die Programmierung WS 2009/10. Übungsblatt 5: Typen, Variablen und einfache Methoden in Java
Ludwig-Maximilians-Universität München München, 20.11.2009 Institut für Informatik Prof. Dr. Christian Böhm Annahita Oswald, Bianca Wackersreuther Einführung in die Programmierung WS 2009/10 Übungsblatt
MehrCrashkurs C++ - Teil 1
Crashkurs C++ - Teil 1 Intro Speicherverwaltung Variablen, Pointer, Referenzen Felder statische & dynamische Allozierung Birgit Möller & Denis Williams AG Bioinformatik & Mustererkennung Institut für Informatik
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
MehrHydroinformatik I: Klassen
Hydroinformatik I: Klassen Prof. Dr.-Ing. habil. Olaf Kolditz 1 Helmholtz Centre for Environmental Research UFZ, Leipzig 2 Technische Universität Dresden TUD, Dresden Dresden, 27. November 2015 1/13 Prof.
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen
5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage
MehrProgrammieren in C++ Templates
Programmieren in C++ Templates Inhalt Templates Funktions- und Klassen-Templates Spezialisierung von Templates Generische Klassen Einbinden von Templates Instantiierung (implizit und explizit) Templates
MehrProgrammierkurs C/C++
Blockkurs: "Einführung in C/C++" Programmierkurs C/C++ Freitag Sandro Andreotti andreott@inf.fu-berlin.de WS 2008/09 1 Blockkurs: "Einführung in C/C++" 2 Vererbung Klassen erben die Member von Basisklassen:
MehrMikrorechentechnik II. Klassen in C++
Mikrorechentechnik II Klassen in C++ class class cfilter { float K; float T; float Ta; public: // Filterverstärkung // Filterzeitkonstante // Tastzeit Zugriffskontrolle: public, protected, private void
MehrC++ Klassen weitere Funktionen
C++ Klassen weitere Funktionen Übersicht static Elemente const Elemente Zusätzliches zu Konstruktoren Kopier-Konstruktor Konvertierung-Konstruktor Initialisierungslisten Friend Funktionen 2 Statische Klassenkomponenten
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
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
MehrVorlesung Programmieren
Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von
MehrKlausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
MehrÜberblick. Überblick. Abstrakte Klassen - rein virtuelle Funktionen Beispiele
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen
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
MehrZeiger (engl. Pointer)
Zeiger (engl. Pointer) Zeiger Ein Zeiger (engl. Pointer) speichert eine Adresse, unter der ein Wert im Speicher des Computers gespeichert werden kann. Eine Variable im Gegensatz speichert einen Wert. Der
MehrShort Introduction to C# C# (C SHARP) Microsofts Antwort auf Java
Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Short Introduction to C# C# (C SHARP) Microsofts Antwort auf Java Standardisierung durch die ECMA und ISO Short Introduction to C# C# (C
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 11 Was bisher verschwiegen wurde Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Type qualifier Typen können mit folgenden
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 11 Was bisher verschwiegen wurde Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Type qualifier Typen können mit folgenden
MehrElementare Datentypen in C++
Elementare Datentypen in C++ bool signed/unsigned char signed/unsigned short int signed/unsigned int signed/unsigned long int (signed/unsigned long long int) float double long double void enum char Der
MehrKonstruktor/Destruktor
1/23 Konstruktor/Destruktor Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/23 Outline 1 2 3/23 Inhaltsverzeichnis 1 2
MehrC++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11
C++ Teil 12 Sven Groß 18. Jan 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 12 18. Jan 2016 1 / 11 Themen der letzten Vorlesung Wiederholung aller bisherigen Themen: Datentypen und Variablen Operatoren Kontrollstrukturen
MehrC++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18
C++ Teil 5 Sven Groß 13. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 13. Mai 2016 1 / 18 Themen der letzten Vorlesung Funktionen Funktionsüberladung, Signatur Rekursion const-deklaration Referenzen
MehrProgrammieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff
Programmieren in C Speicher anfordern, Unions und Bitfelder Prof. Dr. Nikolaus Wulff Vergleich: Felder und Strukturen Felder müssen Elemente vom selben Typ enthalten. Strukturen können Elemente unterschiedlichen
MehrJAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage
MehrKlassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg
Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive
MehrC++ - Objektorientierte Programmierung Vererbung
C++ - Objektorientierte Programmierung Vererbung Personen Kunden Mitarbeiter Verwaltung Verkäufer Leibniz Universität IT Services Anja Aue Vererbung Definition von Klassen auf Basis von bestehenden Klassen.
Mehr