Масив об’єктів в java - vertex academy

Масив об'єктів в java - vertex academy

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

Масив об'єктів в java - vertex academy

У масивів є кілька особливостей:

1. Вони можуть зберігати змінні тільки одного типу;

2. Розмір масиву не можна поміняти;

3. Масив має довжину;

4. Елементи масивів мають індекси, за якими до них і звертаються в разі потреби;

5. Номер першого елемента масиву - 0;

6. Можна створювати порожні масиви, і "покласти" в них елементи потім.

А ось що таке "масиви об'єктів" ми раніше не розглядали. Давайте розберемося що до чого.

масив об'єктів

По суті, у масивів об'єктів дуже багато спільного зі звичайними масивами, тільки у них інша "начинка". Проте, як Ви знаєте, об'єкти набагато "складніше", ніж змінні, тому що у них є більше складових.

Масив об'єктів оголошується так само, як і масив змінних:

Як ви бачите, у нас не масив різних об'єктів (стільців, столів і жувальних гумок). Це масив об'єктів одного класу (масив стільців, наприклад).

Тут теж все починається і закінчується назвою класу. а в кінці в квадратних дужках вказується розмір масиву:

Масив об'єктів в java - vertex academy

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

Масив об'єктів в java - vertex academy

Тобто в масиві не містяться всі змінні і методи кожного об'єкта, як Ви могли б подумати, а тільки посилання на ці самі об'єкти. Але тут виникає одна небезпека. Зазвичай змінні в масивах мають значення за замовчуванням - якщо не поставити, наприклад, значення змінної int, то вона за замовчуванням буде дорівнює 0 (більше інформації про значення за замовчуванням можна знайти тут).

Тому, в масиві зберігається значення за замовчуванням null. Якщо Ви спробуєте викликати метод не створеного об'єкта, виникне поширена помилка NullPointerException. Обов'язково створіть свої об'єкти перед тим, як звертатися до них! 😉

Давайте створимо масив об'єктів. Припустимо, у нас є клас - ObjMass, і все, що в ньому зберігається - це масив об'єктів Cat з 3 елементів: