Масив об’єктів у Java - Vertex Academy

- написана командою Vertex Academy. Сподіваємось, що вона Вам буде корисною. Приємного прочитання!
- це одна із статей з нашого "Самовчителя з Java"
Що таке масив

У масивів є кілька особливостей:
1. Вони можуть зберігати зміннітільки одного типу ;
2.Размер масиву не можна змінити;
3. Масив має довжину;
4. Елементи масивів мають індекси, за якими до них і звертаються у разі потреби;
5. Номер першого елемента масиву -0 ;
6. Можна створювати порожні масиви, і " покласти " них елементипотом.
А ось що таке "масиви об'єктів" ми раніше не розглядали. Давайте розберемося до чого.
Масив об'єктів
По суті, у масивів об'єктів дуже багато спільного із звичайними масивами, тільки в них інша "начинка". Проте, як Ви знаєте, об'єкти набагато "складніші", ніж змінні, тому що вони мають більше складових.
Масив об'єктів оголошується так само, як і масив змінних:
Як ви бачите, у нас не масиврізних об'єктів (стільців, столів та жувальних гумок). Це масивоб'єктів одного класу (масив стільців, наприклад).
Тут теж все починається і закінчуєтьсяназвою класу, а в кінці в квадратних дужках вказується розмір масиву:

Поширена помилка
Масив об'єктів відрізняється однією особливістю - вони складаються з посилань на об'єкти:

Тобто в масиві не містяться всі змінні та методи кожного об'єкта, як Ви могли б подумати, а лише посилання на ці об'єкти. Але тут виникає одна небезпека. Зазвичай змінні вмасивах мають значення за замовчуванням - якщо не задати, наприклад, значення змінної int, то вона за умовчанням дорівнюватиме 0 (більше інформації про значення за замовчуванням можна знайти тут).
Тому в масиві зберігається значення за умовчаннямnull. Якщо ви спробуєте викликати метод не створеного об'єкта, виникне поширена помилкаNullPointerException. Обов'язково створіть свої об'єкти перед тим, як звертатись до них! 😉
Приклад
Давайте створимо масив об'єктів. Допустимо, у нас є клас - ObjMass, і все, що в ньому зберігається - це масив об'єктів Cat з 3 елементів: