Skocz do zawartości

Recommended Posts

Napisano

Witam, mam mały problem, piszę program w javie i z tego co pamiętam jeszcze z c++ to jak przekazuję funkcji zmienną to wtedy tworzona jest jej kopia i że powinno się przekazywać wskaźnik i wtedy operować na zmiennej a nie na jej kopi. Jednak jak pisze w javie void funkcja(int* x); to intellij zgłasza mi: cannot resolve symbol 'x'

  • 2 weeks later...
Napisano

W Javie nie można przekazać referencji. Wszystkie parametry są przekazywane przez wartość. Jeśli chcesz zmieniać zmienną pierwotną najlepiej byłoby zastosować funkcję która jako wynik zwraca nową wartość i przypisać wynik do tej zmiennej.

  • 1 month later...
Napisano

FunMan czekaj czekaj... Nie można przekazać referencji? Każdy obiekt dziedziczący po Object w javie jest domyślnie przekazywany przez referencję! Mylisz człowieka!

Sytuacja wygląda tak, wszystko jest teoretycznie przekazywane przez wartość, ale w przypadku obiektów ta wartość to wskaźnik, także w funkcji operujesz już na tym samym obiekcie. Tylko i wyłącznie typy PRYMITYWNE są przekazywane jako wartość.

int jest typem prymitywnym, dlatego jeśli chcesz przekazać inta przez referencję to polecam po prostu użyć typu Integer, który działa tak samo ale jest już obiektem dziedziczącym po Object

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...