2015-03-02 4 views
-1
3. class Dozens { 
    4. int[] dz = {1,2,3,4,5,6,7,8,9,10,11,12}; 
    5. } 
    6. public class Eggs { 
    7. public static void main(String[] args) { 
    8. Dozens [] da = new Dozens[3]; 
    9. da[0] = new Dozens(); 
    10. Dozens d = new Dozens(); 
    11. da[1] = d; 
    12. d = null; 
    13. da[1] = null; 
    14. // do stuff 
    15. } 
    16. } 

I have this code from scjp book,which asks how many objects are created and answer was 5 objects ,but i was only able to figure out 4 objects 
1st object -line 4 
2nd object-line 8 
3rd object -line 9 
4th object -line 10 
,can any one explain where and how 5th object is being created? 

Может ли кто-нибудь объяснить, где и как создается 5-й объект, может ли кто-нибудь объяснить, где и как создается 5-й объект? Может ли кто-нибудь объяснить, где и как создается 5-й объект? может ли кто-нибудь объяснить, где и как создается 5-й объект? Кто-нибудь может объяснить, где и как создается 5-й объект?Сколько объектов было создано

+0

вы можете добавить explanatio ns для этих четырех объектов, которые вы идентифицировали? – Thilo

+0

Почему строка 4 создает объект? Сколько объектов создано в строке 9? – Thilo

+0

@Thilo кто-то редактировал код, извините –

ответ

2

Для каждого класса Dozen создать два объекта:

  • Дюжина
  • DZ массив

Вы создаете 2 Dozen объекты и один массив da.

Таким образом, в конце концов, мы имеем:

2*Dozen+ 3*Array = 5 Objects. 

Если dz будет статичен, чем все экземпляры Дюжина разделит же ссылку на объект, но здесь они не делают.

ОБНОВЛЕНИЕ: объекты создаются в:

  • линии 8 = 1 массив - с нулевыми значениями
  • линии 9 = 2 объекта (1 бульдозер, 1 дг массива внутри бульдозера)
  • линии 10 = 2 объекта (1 бульдозер, 1 DZ массив внутри бульдозера)

Я надеюсь, что это помогает :)

+0

см. Отредактированный вопрос, и, пожалуйста, объясните, в каких объектах номер строки создаются. –

+0

Десятки [] da = new Dozens [3]; эта строка создает 1 объект или 3 объекта? –

+1

1 Объект. Потому что таким образом вы создаете пустой массив, который имеет нулевые значения. Таким образом, больше объектов не создается рядом с массивом. – Beri

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