zachowanie wartości po wyjściu z funkcji

0

Witam,

Pewnie temat był wałkowany ale nigdzie nie mogę znaleźć odpowiedzi.

public class Test
{
	static int a=0;
	
	static void zwieksz(int a)
	{
		a++;
	}
	
  public static void  main(String[] args)
  {
	  System.out.println(a);
	  zwieksz(a);
	  System.out.println(a);
  } 

Chodzi o to żeby nie używać return bo to jest tylko przykład a prawdziwa funkcja działa na kilku zmiennych i chciałbym żeby po wyjściu z funkcji te zmienne nie wracały do poprzedniej wartości. W C++ można przekazać parametr przez referencje "static void zwieksz(int &a)" a w Java nie, więc spróbowałem z słowem kluczowym 'static' ale funkcja kopiuje wartości zmiennych i operuje na kopiach więc na wyjściu dostaje 0 0 zamiast 0 1. Jest na to jakiś sposób?

0

Coś kręcisz

        static void zwieksz(int a)
        {
                a++;
        }

W metodzie zwieksz() nie zmieniasz wartości pola w klasie, które nazywa się a. Zwiększasz wartość zmiennej lokalnej a, którą przekazałeś do metody. Sprawdź takie coś:

        static void zwieksz()
        {
                a++;
        }
0

@Przemek23 ty w ogóle rozumiesz co znaczy static w tym miejscu? Wątpię...
Efekt który chcesz osiągnąć da się zrobić, jeśli te zmienne będziesz przechowywał w obiekcie własnej klasy który przekażesz do metody jako argument.

1 użytkowników online, w tym zalogowanych: 0, gości: 1