Alex Napisano Grudzień 5, 2013 Zgłoś Udostępnij 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 Link do komentarza Udostępnij na innych stronach More sharing options...
FunMan Napisano Grudzień 13, 2013 Zgłoś Udostępnij 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 Link do komentarza Udostępnij na innych stronach More sharing options...
Nekromancer Napisano Luty 6, 2014 Zgłoś Udostępnij 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 Link do komentarza Udostępnij na innych stronach More sharing options...
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.