Alex Napisano Grudzień 5, 2013 Zgłoś Napisano Grudzień 5, 2013 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' Cytuj
FunMan Napisano Grudzień 13, 2013 Zgłoś Napisano Grudzień 13, 2013 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. Cytuj
Nekromancer Napisano Luty 6, 2014 Zgłoś Napisano Luty 6, 2014 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 Cytuj
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.