Wie kann man außerhalb der Main Methode auf Variablen innerhalb der Main Methode zugreifen?

5 Antworten

Gar nicht. Lokale Variablen heißen deshalb so, weil sie eben nur lokal (= innerhalb der Methode) zugreifbar sind.

Wenn Du das Bedürfnis verspürst, sowas zu tun, dann ist zu 99,9999% Dein Quellcode Mist und Du solltest ihn dringend überarbeiten.

Es gibt aber üblicherweise zwei Wege, um Werte mit anderen Funktionen auszutauschen:

1) Parameter

2) Rückgabewerte

Wenn also ein Wert aus Methode A in Methode B verwendet werden soll, übergib den Wert als Parameter an Methode B.

Soll das Ergebnis des Methodenaufrufs in irgendeiner Form wieder in Methode A verwendet werden, liefere ihn als Funktionsergebnis zur Speicherung in einer Variablen in Methode A.

Beispiel:

private void methodeA()
{
  int value = 3;
  value = sumValues(values, 5);
  // Jetzt steht in value der Wert 8
}

private int sumValues(int orgValue, int toBeAdded)
{
  return orgValue + toBeAdded;
}

naja mal so ganz konkret, ist die main methode dein eingang ins programm aber auch dein ausgang aus dem programm , also quasi das eigentliche programm . wenn da ende ist , ist auch eigentlich ende .

deswegen ist das bissel unlogisch so zu fragen .

wenn du was in der main methode hast an variablen , nimmst du klassen methoden bzw instanz methoden und übergiebst diesen wert . in die objekte etc via deren methoden etc , willst du was zurück haben (z.b. nach einer rechnung in der klasse / objekt brauchst du eine methode die ein rückgabe wert liefert.

ja das kann sein das du sachen die du in main machst , kontinuierlich druchreichen musst . damit sie auch da ankommen wo du sie brauchst :)

und beim rückweg dann genau das gleiche .

so wirklich globale variablen sollte man wirklich vermeiden . das führt früher oder später ins chaos . weil bei änderung dieser , du alles anpassen musst und das kann bei großeren projekten oder vielen klassen zum nirvana führen :)

Von Experte BeamerBen bestätigt

Du musst sie in einem Funktionsaufruf als Parameter an eine andere Methode übergeben oder außerhalb der Methode definieren - bspw. als Klassenvariable.

Woher ich das weiß:Berufserfahrung – Ausgebildeter Softwareentwickler

Indem Du die Variable global machst, aber das ist eigentlich ein schlechter Programmierstil. Besser ist du änderst die Variable innerhalb einer Instanz der Objektklasse mit Hilfe von get und set Methoden.

Gar nicht

Woher ich das weiß:Berufserfahrung – Software Entwickler / Devops