Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Java] Przekazywanie typów podstawowych przez referencję

Ostatnio zmodyfikowano 2013-01-07 17:57
Autor Wiadomość
DejaVu
Temat założony przez niniejszego użytkownika
[Java] Przekazywanie typów podstawowych przez referencję
» 2013-01-07 12:30:21
Czy istnieje możliwość przekazywania typów podstawowych przez referencję w jakiś trywialny sposób, tj. bez konieczności opakowywania go w klasę?
Integer x = new Integer(1);
Integer y = x;
y = 3;
System.out.println(x);
W powyższym przypadku gdyby 'y' było traktowane jako referencja to wówczas otrzymałbym na ekranie wartość 3, a nie 1...
P-73223
m4tx
» 2013-01-07 17:02:55
Hm, a że tak zapytam... Po co Ci to? :)
P-73246
DejaVu
Temat założony przez niniejszego użytkownika
» 2013-01-07 17:05:57
np. w celu zwrócenia wartości przez referencję?
P-73247
m4tx
» 2013-01-07 17:18:31
No rozumiem, ale w Javie się tego nie używa. Użyj
return
 i tyle :) Z tego co wiem, to się tak po prostu nie da. Możesz ew. przekazać tę zmienną w tablicy, lub - jak wspomniałeś - opakować w klasę, ale... nie polecam. To nie C++ :P
P-73248
DejaVu
Temat założony przez niniejszego użytkownika
» 2013-01-07 17:22:41
No rozumiem, ale w Javie się tego nie używa.
Nie używa bo się nie da, a nie używa się bo są lepsze rozwiązania to zasadnicza różnica. Poczytałem trochę w necie i faktycznie ponoć się nie da przekazywać typów podstawowych przez referencję. Jedyną drogą jest opakowanie typu podstawowego w klasę. No ale dlaczego nie ma w standardzie typów podstawowych, które można przekazywać przez referencję (a może są, tylko o nich prawie nikt nie wie)? Tak na logikę powinny być, bo bez tego już na dzień dobry stwarza wrażenie wybrakowanego języka programowania...

/edit:
W każdym razie z tego wynika, że nie da się stworzyć zmiennej na stosie i przekazywać ją przez referencję. Można mieć albo zmienną typu podstawowego na stosie, albo zmienną typu podstawowego opakowaną w klasę, alokowaną na stercie.
P-73250
m4tx
» 2013-01-07 17:33:47
na dzień dobry stwarza wrażenie wybrakowanego języka programowania...
Oj, Java jest w wielu kwestiach bardziej wybrakowana niż C++; wielu znacznie bardziej denerwujących kwestiach. Ale do każdego języka można się przyzwyczaić... Jeśli tak bardzo Ci brakuje tego ficzera, to... z tego co wiem, to nikt Ci nie każe Javy używać... :) Jak już mówiłem - żadne proste, a zarazem eleganckie rozwiązanie nie jest mi znane i prawdopodobnie nie istnieje. I ja bym raczej unikał tego jak ognia, bo od zwracania wartości służy
return
, a nie argumenty funkcji... Ja wiem, że przyzwyczajenia robią swoje, ale to jest jednak inny język i inne mechanizmy...
P-73252
DejaVu
Temat założony przez niniejszego użytkownika
» 2013-01-07 17:41:07
Tak, ale czasami przydaje się zwrócić true/false za pomocą metody i dostać dodatkową informację przez referencję.
P-73253
jsc
» 2013-01-07 17:48:27
No to trzeba się ratować obiektami...
P-73254
« 1 » 2
  Strona 1 z 2 Następna strona