Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Willerich Schinker Geändert vor über 11 Jahren
1
Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden
2
Eine Klassenvariable bezieht sich auf die Klasse und nicht auf ein Objekt dieser Klasse.
3
Eine statische Methode (auch Klassenmethode genannt) kann nur auf Klassenvariablen zugreifen, aber nicht auf Attribute (Datenmember) einer Klasse.
4
Beispiel: Der Kontostand verschiedener Kunden einer Bank ist im Allgemeinen verschieden, aber die Bank kann jedem Kunden den gleichen Zinssatz geben.
5
Zinssatz: Klassenvariable der Klasse Konto. Kontostand: "gewöhnliche" Variable (Attribut) der Klasse Konto.
6
Mit einer statischen Methode kann man nur auf den Zinssatz zugreifen.
7
Umsetzung in C++
8
Eine Klassenvariable bekommt den Bezeichner static in der Definition der Klasse.
9
Beispiel in C++
10
#include using namespace std;
11
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
12
Implementieren Sie die Methoden.
13
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)
14
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 !!
15
double Konto::berechneZinsen(){ return(kontostand* zinssatz/100); }; eine nicht static-Methode darf auch auf eine Klassenvariable zugreifen.
16
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.