MINT lernen

Lokale und globale Variablen

Zwei Variablen mit demselben Namen — und doch zwei verschiedene Speicherplätze. Entscheidend ist, wo eine Variable deklariert wurde.

1

Gültigkeitsbereich einer Variablen

  • Gültigkeitsbereich:der Programmteil, in dem eine Variable bekannt ist und benutzt werden darf (engl. scope).
  • Lokal:in einer Operation (oder einem Block) deklariert — nur dort gültig.
  • Parameter:verhalten sich wie lokale Variablen der Operation.
  • Global:außerhalb aller Operationen deklariert — in Java als Attribut der Klasse — und überall darin lesbar.
  • Lebensdauer:lokale Variablen entstehen bei jedem Aufruf neu und verschwinden, wenn die Operation endet.
2

Verdecken und Seiteneffekte

  • Verdecken:eine lokale Variable oder ein Parameter mit gleichem Namen verdeckt die globale innerhalb der Operation.
  • Python:eine Zuweisung in einer Funktion erzeugt eine neue lokale Variable; die globale ändert nur, wer global name schreibt.
  • Seiteneffekt:eine Operation ändert eine globale Variable — das Ergebnis hängt dann von der Aufrufreihenfolge ab.
  • Faustregel:Daten über Parameter hinein, über return heraus.

Wähle einen Stift und klicke jedes Vorkommen einer Variablen im Code an (Tastatur: Tab, dann Enter). Markiere, ob es die globale Variable, eine lokale Variable oder ein Parameter ist — ein Zähler läuft mit.

Wem gehört die Variable?

Stift:

Halte fest: Entscheidend ist, wo eine Variable deklariert ist, nicht wie sie heißt: Gleiche Namen können zu verschiedenen Speicherplätzen gehören.

Merke

Lokal gilt nur in der Operation, in der sie deklariert ist · global gilt überall · bei gleichem Namen verdeckt die lokale die globale.

3

Allgemeine Hinweise

Lokale Werte sind danach weg

Nach dem Ende einer Operation existieren ihre lokalen Variablen nicht mehr. Wer das Ergebnis braucht, muss es mit return zurückgeben.

Gleicher Name, anderer Speicherplatz

Ein Parameter punkte und ein Attribut punkte sind zwei Variablen. In Java erreicht man das Attribut dann nur noch mit this.punkte.

So lokal wie möglich

Deklariere Variablen erst dort, wo du sie brauchst. Je kleiner der Gültigkeitsbereich, desto weniger kann an anderer Stelle schiefgehen.

Videos