Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden.

Slides:



Advertisements
Ähnliche Präsentationen
Einführung in die Programmiersprache C/C++
Advertisements

Programme in C++.
Objektorientierte Programmierung
Imperative Programmierung
der Universität Oldenburg
Klassen - Verkettete Liste -
Objektorientierte Programmierung
Ein- und Ausgabe von Dateien
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: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Abstrakte Klassen.
Ein Beispiel in Java.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Aufgabe: Erstellen Sie die Klasse Punkt, (mit den entsprechenden Attributen und Methoden), die einen Punkt (Pixel) in einer grafischen zweidimensionalen.
Objekte werden als Adressen (Referenzen) übergeben. Dies führt manchmal zu unerwarteten Ergebnissen...
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Objekte und Arbeitsspeicher
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
DO...WHILE Anweisung.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Programmieren mit JAVA
Abstrakter Datentyp in C++ I - Klasse -
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
C++ Vererbung und Polymorphie
DVG Einführung in Java1 Einführung in JAVA.
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Bestimmung des ggT zweier Zahlen
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Grundkonzepte Java - Klassendefinition
Ham EST Das Schwein Schmatz.. Fressen Beginnen wir.... mit einer Geschichte:
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Objektorientiertes Konstruieren
Grundlagen wissenschaftlichen Arbeitens An Overview of C++ Ali CICEK
OOP Übung 6 Gruppe 4 | Anja Voeske Peter Isaak Christian Mader
Programmiervorkurs WS 2014/15 Methoden
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.
early binding (frühe Bindung) late binding (späte Bindung)
1 VeranstaltungThemaVortragende AINF-Lehrgang 2003 Titel: Grundlagen der Objektorientierten Programmierung Name: Gruppe Programmierung.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Erweiterte Zuweisungskompatibilität. Wie kann man Objekte verschiedener Klassen einer Klassenhierarchie einander zuweisen ?
Namensräume (namespaces). verwendet man umfangreiche eigene und fremde Bibliotheken (Sammlungen von Funktionen) so ist die Wahrscheinlichkeit groß, daß.
Java Programme nur ein bisschen objektorientiert.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
C++ FÜR cOMPUTERSPIELENTWICKLER
Tutorium Software-Engineering SS14 Florian Manghofer.
Die Klasse Vielfrass in Java
Einführung in die Programmierung
Cäsar-Verschlüsselung
Grundkurs Informatik mit Java
Es gibt Klassen, die mit der Entwicklungsumgebung ausgeliefert werden
Cäsar-Verschlüsselung
Implementieren von Klassen
Grundkurs Informatik 11-13
 Präsentation transkript:

Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden

Eine Klassenvariable bezieht sich auf die Klasse und nicht auf ein Objekt dieser Klasse.

Eine statische Methode (auch Klassenmethode genannt) kann nur auf Klassenvariablen zugreifen, aber nicht auf Attribute (Datenmember) einer Klasse.

Beispiel: Der Kontostand verschiedener Kunden einer Bank ist im Allgemeinen verschieden, aber die Bank kann jedem Kunden den gleichen Zinssatz geben.

Zinssatz: Klassenvariable der Klasse Konto. Kontostand: "gewöhnliche" Variable (Attribut) der Klasse Konto.

Mit einer statischen Methode kann man nur auf den Zinssatz zugreifen.

Umsetzung in C++

Eine Klassenvariable bekommt den Bezeichner static in der Definition der Klasse.

Beispiel in C++

#include using namespace std;

class Konto{ private: static double zinssatz; double kontostand; public: Konto(double geld); ~Konto(); static void setZinssatz( double z); static double getZinssatz(); double berechneZinsen(); }; Deklaration der Klassenvariable Deklaration der statischen Methode Bezeichner static

Implementieren Sie die Methoden.

double Konto::zinssatz; Konto::Konto(double geld){ kontostand = geld; }; Konto::~Konto(){ }; Definition der Klassenvariable, d.h. damit wird Speicher reserviert. Der Bezeichner static darf hier nicht mehr verwendet werden !! Konstrukor (wie üblich) Destrukor (wie üblich)

void Konto::setZinssatz( double z){ zinssatz = z; } double Konto::getZinssatz(){ return(zinssatz); } statische Methode darf nur auf die Klassenvariable zugreifen. Der Bezeichner static darf hier nicht mehr verwendet werden !!

double Konto::berechneZinsen(){ return(kontostand* zinssatz/100); }; eine nicht static-Methode darf auch auf eine Klassenvariable zugreifen.

int main(){ Konto::setZinssatz(50); Konto k1(1000); Konto k2(2000); cout << "Zinsertrag ist: " << k1.berechneZinsen() << endl; cout << "Zinsertrag ist: " << k2.berechneZinsen() << endl; } Zinssatz wird auf 50% festgelegt. Dies gilt für alle Konten !! Da dies für die Klasse gilt, wird auch der Bezeichner Konto verwendet !! Kontostand für Konto k1 initialisieren auf : 1000 Kontostand für Konto k2 initialisieren auf : 2000 Zinsertrag für Konto k1 ist: Kontostand 1000 und 50% = 500 Zinsertrag für Konto k2 ist: Kontostand 2000 und 50% = 1000