Przypisanie obiektu Java
Jestem nowym użytkownikiem Java i mam kilka pytań dotyczących przypisania obiektów. Na przykład,
Test t1 = new Test();
Test t2 = t1;
t1.i=1;
Zakładając zmiennąi
jest zdefiniowany wewnątrz klasy Test, czy mam prawo założyć, że zarówno t1, jak i t2 wskazują ten sam obiekt, w którym dokonano modyfikacjit1.i=1
dotyczy obut1
it2
? Właściwie to przetestowałem i wydaje mi się, że miałem rację. Jednak kiedy próbuję tego samegoString
, modyfikacja odbywa się tylko z jednej strony, przy czym druga strona pozostaje bez zmian. Jaka jest tego przyczyna?
Edytuj: Sprawa, którą wypróbowałem za pomocą String.
String s1 = "0";
String s2 = s1;
s1 = "1";
System.out.println(s1);
System.out.println(s2);
Zdaję sobie sprawę z mojego błędu, testując przypadki na String, ponieważ są one niezmienne. Sytuacja, w której myślałems1="1"
zmodyfikuj ciąg, zwracając w rzeczywistości odniesienie „1” do s1. Niemniej jednak pozostaje moje pytanie. RobiTest t2 = t1;
bo zarówno punkt t2, jak i t1 do tego samego obiektu lub każdy z nich ma teraz swoje własne obiekty? Czy ta sytuacja dotyczy wszystkich obiektów na Javie?