-
Data: 2011-02-17 10:49:10
Temat: Re: Android mały myk
Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Feb 17, 9:17 am, "Wojciech \"Spook\" Sura" <spook"mad@hatter"op.pl>
wrote:
> Dnia 10-02-2011 o 16:40:43 Michoo <m...@v...pl> napisał(a):
>
> > W javie natomiast obiekty technicznie rzecz biorąc są referencjami ale
> > praktycznie (przez połączenie przez braku operatora przypisania obiektu,
> > i projektu biblioteki standardowej (np wszystkie operacje na stringu
> > tworzą nowy obiekt a nie modyfikują istniejącego)) mają semantykę
> > wartości. Żeby mieć semantykę referencji trzeba zawinąć obiekt w inny
> > obiekt pozwalający modyfikować swoje wnętrze przez metody.
>
> Ok, ale rozumiem, że instancje klas są przekazywane przez referencję?
Jest tak: wartości i obiekty to osobne kategorie bytów. Pola klas,
zmienne, parametry funkcji to wartości. Obiekty natomiast żyją sobie
na stercie jako instancje klas. Ponieważ zmienne i parametry są
wartościami, operator przypisania też dotyczy tylko wartości. Obiekty
moga co najwyżej być powielane metodą kopiującą.
Jedną z klas typów wartości są referencje na obiekty, które zachowują
się w sposób spójny z innymi wartościami. W szczególności przypisanie
wartości referencji do zmiennej powoduje, że zmienna ta zawiera
(kolejną) referencję do tego samego obiektu.
Jeśli masz coś takiego:
int f(A a) {
a=cośtam();
...
}
...
A x;
...
f(x);
to semantyka jest taka, że funkcja f przyjmuje przez wartość parametr
typu referencja do A, który jest traktowany jako lokalna zmienna a
zawierająca kopię wartości referencji przekazanej przez wywołującego.
Przy wywołaniu f(x) wartość referencji x zostaje skopiowana do A,
czyli są w tym momencie (przynajmniej) dwie referencje do tego samego
obiektu, w momencie, kiedy w f następuje przypisanie a=cośtam()
lokalna zmienna a przestaje być referencją do tego samego obiektu co
x, a przyjmuje nową wartość, zwróconą przez wyrażenie cośtam(); w
kontekście wywołania nie ma to żadnego wpływu na wartość x ani
referowanego przez x obiektu.
Ja osobiście nie widzę żadnego problemu w tym podejściu.
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-07-17 Lublin => Full Stack Java Developer <=
- 2024-07-17 Lublin => Java Full Stack Developer (+Angular) <=
- 2024-07-17 Turek => IT Project Manager (experience with C#) <=
- 2024-07-17 Warszawa => Mobile React Native Developer <=
- 2024-07-05 eSIM na czym polega
- 2024-07-15 Roaming poza unią
- 2024-07-16 Jak tanio dzwonic do Wielkiej Brytani?
- 2024-07-16 Dzień bez ICE
- 2024-07-15 Spalinówki płoną doszczętnie
- 2024-07-15 Pojemność akumulatora
- 2024-07-15 Elektryk8i dalej płoną.
- 2024-07-15 Motodziennik #284 NOWY MG HS z hybrydą oraz wraca FORD CAPRI (jako SUV)
- 2024-07-14 [FILM] SAMOCHODY ELEKTRYCZNE DO WIELKIE ŚCIEMA? TYLKO FAKTY!
- 2024-07-14 Znieczulica w narodzie
- 2024-07-13 Protect Your PC with IObit Malware Fighter Pro 11.3.0.1346 Multilingual