2015-02-01 4 views
0

Так что у меня есть проблема с попыткой выяснить, действительно ли создан какой-то Object или это просто какой-то указатель.На самом деле это объект?

Может кто-нибудь помочь мне понять это, пожалуйста? У меня есть такой пример, если это помогает :)

Bookshelf a = new Bookshelf(2); 

Bookshelf b = a; 

Bookshelf c = b.clone(); 

Bookshelf []v ={ a,b,c.clone}; 
+1

И как вы думаете, ответ и почему? Начните с компиляции кода. –

+0

a, b и c - ссылки на объекты (а не сами объекты). a и b ссылаются на один и тот же объект. c ссылается на объект, который должен быть копией объекта, на который ссылаются a и b. –

+0

Я действительно думаю, что это а и c, потому что b то же, что и a и не создается с помощью нового оператора, а метод clone() возвращает новый объект. Но тот, который я действительно не знаю, - это вектор v .... –

ответ

0

a и b те же инстанции, cдолжен быть идентичным Bookshelf, а другой экземпляр. v, то содержит два уникальных объекта, один из которых находится там дважды под разными именами.

+0

Таким образом, только a и c являются уникальными объектами (просто чтобы проверить, правильно ли я это понял) –

+0

Да, хотя 'v' тоже. – DennisW

+1

@ClaudiaMendes no. Это ** ссылки ** на объекты. 'a' и' b' - 2 ссылки на один и тот же объект. 'c' является ссылкой на другой объект, который является копией (предполагая, что' clone() 'действительно возвращает копию) объекта, на который ссылаются' a' и 'b'. 'v' также является ссылкой на объект (массив). –

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