Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden."—  Präsentation transkript:

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


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

Ähnliche Präsentationen


Google-Anzeigen