2011-12-17 2 views
2

Я смущен, поскольку я новичок в java, сколько объектов и ссылок создаются в следующем фрагменте кода?Объект и ссылки в java

MyClass t = new MyClass(); 
MyClass s = new MyClass(); 
MyClass v = s; 

Пожалуйста, объясните ответ:

2 Objects 
3 References 
+0

Psst: Java чувствителен к регистру. MYclass! = MyClass! = Myclass. –

ответ

6

Картина стоит больше, чем тысячи слов:

enter image description here

+0

приятно сказано .. :) – sum2000

2

Объект является экземпляром класса, созданного с new. Вы используете new дважды, поэтому есть два объекта. *

Переменная, вообще говоря, является ссылкой. ** Итак, есть три ссылки (t, s, v), хотя два из них, похоже, относятся к одному и тому же объекту.


* Конечно, MyClass сам может создать больше объектов внутри страны.

** За исключением случая примитивных типов, как int, float и т.д.

+0

ok .. так что u означает сказать, что v и s относятся к тому же местоположению mem.? – sum2000

+0

@ sum2000: Да .. –

+0

thnks для справки. :) – sum2000

2

2 объекта и

3 эталонным

если вы new вы создаете объект, так есть два новых, так просто два объекта

и если вы определяете

Foo a;// you have just created a reference

* Примечание: new только способ создать объект, он может быть создан с помощью Otherways слишком

+0

Другие способы создания объекта, отличного от 'new' (не считая таких вещей, как' clone', которые будут называть 'new' внутренне?) –

+0

@Oli http ://переполнение стека.com/questions/95419/what-are-all-the-different-ways-to-create-an-object-in-java –

2

Так вы создаете новый объект и хранящую ссылку на этот объект в t. То же самое для s. Затем вы назначаете ссылку s на v (не создавая новый объект). Таким образом, у вас есть три ссылки и два объекта.

0

Собственно, ваш ответ неверен. Это наоборот:

2 объектов (в первых двух строках)

3 ссылки (т, s, v, v и s совместно объект)

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