2012-05-23 5 views

ответ

2

Да любые изменения в sc1 будут отражены в sc2 как обе точки к тому же объекту.

Так сказать, если это структура SomeClass

public SomeClass { 
    String name; 
    //getter setter 
} 

, если вы сделаете это

SomeClass sc1 = new SomeClass(); 
SomeClass sc2 = sc1; 

sc1.setName("Hello"); 

System.out.println(sc2.getName()); // this will print hello since both sc1 and sc2 are pointing to the same object. 

Но если вы сделаете это:

sc1.setName("Hello"); 
sc1 = null; 
System.out.println(sc2.getName()); // this will print hello since only sc1 is null not sc2. 
2

Да Каус, потому что они оба относятся к одному и тому же объекту.

0

sc2 и sc1 отдельные переменные, которые содержат как ссылки на тот же объект (это важное различие!). Любое изменение состояния объекта будет одинаково видимым через обе ссылки. Так

sc2.setField("hi!"); 
sc1.getField(); // returns "hi!" 

Однако, изменения в ссылках сами не оказывают никакого влияния на другой:

sc2 = null; 
sc1.getField(); // still returns "hi!", no exception 
1

Его нравится - давать SC1 дополнительное имя SC2.

Смежные вопросы