Aktywne Wpisy
AlienFromWenus +14
Jak trzeba mieć zryty beret by wymagać dziewictwa od kobiety?
Odrzucenie każdej nie-dziewicy to zabranianie młodym kobietom bycia szczęśliwą, zakochaną, korzystania z życia i popełniania błędów.
Co innego szlauf mający 30 bolców w rok, a co innego dziewczyna która po prostu była w kilku związkach ale nie wypaliło.
Jeśli komuś nawet druga opcja przeszkadza to musi to być osoba strasznie zakompleksiona i zawistna oraz pozbawiona emocji, logiki, człowieczeństwa.
Znam prawiczków, którym nie
Odrzucenie każdej nie-dziewicy to zabranianie młodym kobietom bycia szczęśliwą, zakochaną, korzystania z życia i popełniania błędów.
Co innego szlauf mający 30 bolców w rok, a co innego dziewczyna która po prostu była w kilku związkach ale nie wypaliło.
Jeśli komuś nawet druga opcja przeszkadza to musi to być osoba strasznie zakompleksiona i zawistna oraz pozbawiona emocji, logiki, człowieczeństwa.
Znam prawiczków, którym nie
kontodlabeki +81
chłop doda zdjecie klaty: ok
ja dałam kawałek kolana i to ubranego i jestem atencyjnym szonem, eh wykopki co mam powiedzieć, żałośni jesteście ogółem
ja dałam kawałek kolana i to ubranego i jestem atencyjnym szonem, eh wykopki co mam powiedzieć, żałośni jesteście ogółem
private String name;
public Person(String name) {
this.name = name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return "Person [name = " + name + "]";
}
}
public class Main {
public static void main(String[] args)
{
Main main = new Main();
Person person = new Person("Robert");
System.out.println("1. " + person);
main.show(person);
System.out.println("4. " + person);
}
public void show(Person xyz) {
System.out.println("2. " + xyz);
xyz.setName("Piotr");
xyz = new Person("Jacek");
System.out.println("3. " + xyz);
}
}
Wynik:
1. Person [name = Robert]
2. Person [name = Robert]
3. Person [name = Jacek]
4. Person [name = Piotr]
Dlaczego w metodzie show gdy używam xyz.setName("Piotr") to zmieniam zmienną name w obiekcie person, a gdy używam xyz = new Person("Jacek") to pod person nie podstawia mi new Person("Jacek")?
#naukaprogramowania #java
Czyli jak w niej masz już obiekt to masz do niego tylko referencję w xyz. Zmieniając imię zmieniasz tylko pole zmiennej. Natomiast przypisując do xyz nowy obiekt, to w xyz masz nową referencję, która jest tylko w xyz i zostanie zniszczona przez GC po wywołaniu metody. CHYBA~
jest wywołaniem metody z obiektu (nie z referencji bo to nie ma sensu). Dlatego wywołuje zmianę wartości pola w obiekcie.
To jest utworzenie nowego obiektu i przypisanie go do referencji xyz. Nie zmienia to referecji person która nadal odnosi się do obiektu utworzonego poprzez "new Person("Robert");"
xyz trzyma referencję do obiektu przesłanego do metody,
xyz.setname zmienia jej wartość.
Później do xyz przypisujesz nową referencję, czyli nazwa wskazuje na inny obiekt lokalny
wyświetlasz xyz z lokalnego
wychodzisz z metody i masz poprzednią referencję, ze zmienioną wartością.
Lokalna referencja z metody jest niszczona.
Dodam tylko, że zmienna xyz trzyma kopię referencji do obiektu i wszelkie operacje na obiekcie wpływają na zmianę jego stanu.
Jednak gdy przypiszesz obiekt do xyz, to przypiszesz to tylko referencję do innego obiektu, i teraz to na nim wykonujesz "akcje". Proste i logiczne.
@dzony_: Zmienna to taka taczka którą przewozisz ładunek w pudełkach. Możesz załadować taczkę, zawieść gdzieś pudełko, zrobić coś z zawartością pudełka, ...
Wykonując xyz = new Person("Jacek") ładujesz do taczki nowe pudełko i tym samym tracisz dostęp do poprzedniego pudełka.
Komentarz usunięty przez autora