Abstrakter Datentyp in C++ I - Klasse -

Slides:



Advertisements
Ähnliche Präsentationen
Objektorientierte Programmierung
Advertisements

der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
Klassen - Verkettete Liste -
Objektorientierte Programmierung
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Konzepte objektorientierter Systeme
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Java Beans von Raoul Schneider.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Listen Richard Göbel.
Indirekte Adressierung
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden.
Konstruktoren.
Vererbung. Das Prinzip der Vererbung im täglichen Leben:
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
Objektorientierte Programmierung
Packages Vortrag : Cornelia Hardt 23. November 1999.
Abstrakte Klassen DVG
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
FH-Hof Java2D - Grundlagen Richard Göbel. FH-Hof Java2D - Funktionen Java2D unterstützt: das Zeichnen von Grafiken die Darstellung von Texten die Darstellung.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sitzung 3: Klassen, Objekte, Arrays und Kontrollstrukturen
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung
Informatik 1 Übung 8. NACHBESPRECHUNG Übung 8 Rekursion Existiert Weg von A nach B?
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Informatik 1 Letzte Übung.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Dynamische Datentypen
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
1 VeranstaltungThemaVortragende AINF-Lehrgang 2003 Titel: Grundlagen der Objektorientierten Programmierung Name: Gruppe Programmierung.
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Objektorientierte Programmierung (OOP)
Java Programme nur ein bisschen objektorientiert.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
Objektorientierte Programmierung mit JAVA. © Klasse Wie in C++ ist die Klasse das primäre Mittel um ein Entity abzubilden Die Eigenschaften.
C++ FÜR cOMPUTERSPIELENTWICKLER
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Methoden - rekursiv.
Kompetenzniveaus Lernlupe Mathematik
Implementieren von Klassen
Statische und Nichtstatische Methoden Properties / Eigenschaften
Grundkurs Informatik 11-13
 Präsentation transkript:

Abstrakter Datentyp in C++ I - Klasse - class Vector { private: double x; double y; double z; public: void set (double a, double b, double c); double x_coord (); double y_coord (); double z_coord (); double length (); void smult (double); Vector add (Vector, Vector); double sprod (Vector a); void vprod (Vector a, Vector b); } Programmierung 2 FH Bingen

Klasse II class Classname Klassen-Name { private: ....... public: } Klassen-Name Member: Attribute Methoden Programmierung 2 FH Bingen

Klasse III private member: auf die private members können nur Methoden der Klasse selbst zugreifen. Attribute können nur durch Methoden dieser Klasse gelesen oder manipuliert werden. Methoden können nur durch Methoden dieser Klasse aufgerufen werden. public member: der Zugriff auf die public members ist für alle Methoden zugelassen. Programmierung 2 FH Bingen

Klasse IV - Definition eines Objektes - Vector a; a.x = 0; Vector b; b.set (1, 0, 0); Programmierung 2 FH Bingen

Scope Resolution Operator Klasse V - Methoden - double Vector::set (double a, double b, double c); { x = a; y=b; z = c; } double Vector::x_coord() return x; double Vector::y_coord() return y; double Vector::z_coord() return z; Scope Resolution Operator Programmierung 2 FH Bingen

Klasse VI double Vector::length () { return sqrt (x*x + y*y + z*z); } void Vector::smult (double skalar) x *= skalar; y *= skalar; z *= skalar; Vector Vector::add (Vector a, Vector b) x = a.x + b.x; y = a.y + b.y; z = a.z + b.z; Programmierung 2 FH Bingen

Klasse VII double Vector::sprod (Vector a) { return x*a.x + y*a.y + z*a.z; } void Vector::vprod (Vector a, Vector b) x = a.y*b.z - b.y*a.z; y = -(a.x*b.z - b.x*a.z); z = a.x*b.y - b.x*a.y; Programmierung 2 FH Bingen

Klasse VIII Instanzen der Klasse Vector #include <iostream.h> #include <math.h> void main () { Vector a, b, c; a.set (1, 0, 0); b.set (0, 0, 1); cout << "\nDie Laenge von a = (" << a.x_coord() <<", "<< a.y_coord() << ", " <<a.z_coord() << ") ist " << a.length() << '\n'; // printf ("\nDie Laenge von ( %f, %f, %f ) ist %f\n", a.x_coord(), a.y_coord(), a.z_coord(), a.length()); c.vprod(a,b); cout << "\nDie Laenge von c = (" << c.x_coord() <<", "<< c.y_coord() << ", " << c.z_coord() << ") ist " << c.length() << '\n'; c.add(a, b); } Instanzen der Klasse Vector Programmierung 2 FH Bingen

Klasse IX - Konstruktoren - Lebenszyklus der Instanz einer Klasse: Instantiieren und Initialisieren eines Objektes Benutzen eines Objektes Beseitigen eines Objektes Programmierung 2 FH Bingen

Klasse X - Konstruktor - Ein Konstruktor ist eine Methode. Er kann deshalb auch Parameter tragen. Ein Konstruktor trägt den Namen seiner Klasse. Ein Konstruktor trägt keinen Return-Typ (auch nicht void). Eine Klasse kann mehrere Konstruktoren beinhalten. Programmierung 2 FH Bingen

Klasse XI - Konstruktor - class Vector { private: double x; double y; double z; public: Vector (); Vector (double, double, double); ........................ }; Programmierung 2 FH Bingen

Klasse XII - Konstruktor - Vector::Vector() { x=0; y=0; z=0; } Vector::Vector (double a, double b, double c) x = a; y = b; z = c; Programmierung 2 FH Bingen

Klasse XIII - Konstruktor - void main () { Vector a(1,0,0); Vector b(1,1,1); Vector c; ................................ } Programmierung 2 FH Bingen

Überladen I In C++ dürfen unterschiedliche Funktionen gleichen Namens definiert werden. Diese Funktionen müssen sich in ihrer Parameter-Signatur unterscheiden Programmierung 2 FH Bingen

Überladen II Vector::print ( double x) { cout << "Die Koordinate hat den Wert" << x << '\n'; } Vector::print (Vector a) cout << "Der Vector hat den Wert ( " << a.x << ", " a.y << ", " << a.z << ")\n"; Programmierung 2 FH Bingen

Überladen III main () { Vector a(1, 2, 3); print (a.x_coord); } Programmierung 2 FH Bingen