Wie initialisiert man eine statische Variable einer Methode?

1 Antwort

Eine Methode kann keine statischen Variablen definieren, das ergibt keinen Sinn. Die statische Variable muss auf Klassenebene definiert werden, dann kann man sie beliebig ansprechen und setzen, auch in nicht-statischen Methoden der Klasse.

BeamerBen  30.06.2023, 12:37

Doch, in manchen Sprachen wie etwa C++ geht das schon. Dann hast du halt eine statische Variable die innerhalb einer Function gültig ist und beim ersten Aufruf oder Programmstart initialisiert wird.

Wo das Problem vom Fragesteller ist weiß ich aber auch nicht.

0
ZaoDaDong  30.06.2023, 12:40
@BeamerBen

ok, ich bin jetzt von Java ausgegangen. Bin da vermutlich betriebsblind.

0
Novax454 
Fragesteller
 01.07.2023, 23:24
@BeamerBen

Das Problem ist, dass was ich im Code geschrieben habe, nicht funktioniert

0
BeamerBen  02.07.2023, 00:25
@Novax454

Du hast auch nicht mal dazu geschrieben welche Sprache es genau ist und sonst nichts.

Aber du kannst so eine Variable in C++ normalerweise einfach initialisieren mit = wert.

0
BeamerBen  02.07.2023, 19:32
@Novax454

Ja und? Der Wert mit dem du sie initialisierst wird eben beim ersten aufruf zugewiesen und danach nicht mehr. Die Variable behält auch nach dem verlassen der Funktion ihren Wert und wird nicht erneut initialisiert.

Genau das ist der Sinn hinter einer statischen Variable in einer Funktion.

Beispiel:

static int counter = 0; 
counter++;

Hier hätte beim ersten Aufruf die Variable den Wert 0 und wird dann erhöht auf 1. Beim nächsten aufruf hätte sie immer noch den Wert eins und würde dann auf zwei erhöht werden.

0