Как создать массив объектов класса java
Для создания массива объектов класса в Java можно использовать следующий синтаксис:
ClassName[] array = new ClassName[size];
Где ClassName — имя класса, а size — количество элементов в массиве. Затем можно инициализировать каждый элемент массива, создавая новые объекты с помощью оператора new:
array[0] = new ClassName(); array[1] = new ClassName(); // и т.д.
Можно также использовать цикл for для инициализации всех элементов массива:
for (int i = 0; i size; i++) array[i] = new ClassName(); >
Вместо пустого конструктора можно передать аргументы в конструктор класса для создания объектов с определенными значениями.
Массив объектов в Java. Как добавить объект в массив Java?
Мы уже рассказывали про массивы в Java. В этой статье поговорим про массив объектов и о том, как добавить объект в массив Java. Но сначала давайте вспомним, что массив — это своеобразный контейнер, где может храниться несколько однородных переменных.

Массивы имеют следующие особенности: 1. Хранят переменные лишь одного типа. 2. Имеют определённую длину. 3. Размер массива поменять нельзя. 4. Элементы массива имеют индексы, позволяющие обратиться к этим элементам в случае надобности. 5. Номер 1-го элемента массива — это 0, а не 1; 6. Всегда можно создать пустой массив, а поместить в него элементы можно и потом.
Впрочем, всё это вы уже знаете из предыдущей статьи. Но что такое массив объектов, мы не рассматривали. Впрочем, сейчас мы этот пробел устраним.
Массивы объектов в Java
Массив объектов похож на обычный массив, но имеет другую «начинку». Это связано с тем, что объекты сложнее переменных, т. к. имеют больше составляющих. Но объявление массива объектов происходит так же:

Как видите, мы создаём не массив разных объектов, а массив объектов одного класса. И в начале, и в конце мы указываем название класса, а в квадратных скобках в конце — размер массива.

Какие ошибки делают чаще всего?
У массива объектов есть важная особенность — он включает в себя не объекты сами по себе со всеми их методами и переменными, а лишь ссылки на объекты.

И вот это может стать причиной ошибок. Смотрите, если, к примеру, у нас в массиве есть переменная int и мы не задали её значение, то она по умолчанию станет равна 0. Когда речь идёт про массив объектов — всё иначе. В таком массиве, как уже было сказано, хранятся ссылки на объекты, но пока объект не существует, ссылки тоже не могут существовать. Именно поэтому в массиве объектов по умолчанию хранится значение null. И если вы попытаетесь вызвать метод объекта, который не создан/не существует, получите распространённую ошибку NullPointerException. Это значит, что перед тем, как обращаться к объектам, их обязательно нужно сначала создать, то есть добавить объект в массив Java.
Перейдём к практике
Приступим к созданию массива объектов. Представьте, что у нас есть класс ObjMass и всё, что в нём есть, — это массив объектов Dog из трёх элементов:
public class ObjMass
Прекрасно. Но так как класс Dog мы раньше не описывали (интерпретатор Java знать не знает, что такое Dog и откуда его взять), то название объекта выделится красным. Исправим это, создав параллельно класс Dog:
class ObjMass < Dog[] abc = new Dog [3]; >class Dog
Так, хорошо. Но зачем нам массив, состоящий из пустых объектов? Пусть у собак будут хотя бы клички:
class ObjMass < Dog[] abc = new Dog [3]; >class Dog < String name; public Dog (String name)< this.name = name; >>Вот, теперь Dog имеет содержание.
Давайте сейчас обратимся к объектам, которые ещё не созданы, как говорится, расширим пример. Обратите ваше внимание, что у нас перед массивом объектов Dog находится модификатор static. Также добавим метод main:
class ObjMass < static Dog[] abc = new Dog [3]; public static void main (String[] args)< >> > class Dog < String name; public Dog (String name)< this.name = name; >>Для вывода массива на экран создаём цикл. И выводим не имена собак (abc[i].name), а объекты — abc[i]:
class ObjMass < static Dog[] abc = new Dog [3]; public static void main (String[] args)< for (int i = 0; i> > class Dog < String name; public Dog (String name)< this.name = name; >>И увидим следующий результат:
null null nullЭто и есть значения по умолчанию, при ссылке на которые возникнет ошибка NullPointerException. Она появляется, когда мы ссылаемся на свойство null-ного объекта. К примеру, давайте попробуем вывести на экран имена собак (abc[i].name):
class ObjMass < static Dog[] abc = new Dog [3]; public static void main (String[] args)< for (int i = 0; i> > class Dog < String name; public Dog (String name)< this.name = name; >>Результатом станет тот самый NullPointerException. Чтобы этого не допустить, массив объектов надо заполнить:
class ObjMass < static Dog[] abc = new Dog [3]; public static void main (String[] args)< abc[0] = new Dog("Billy"); abc[1] = new Dog("Tom"); abc[2] = new Dog("Jonny"); for (int i = 0; i> > class Dog < String name; public Dog (String name)< this.name = name; >>Результат выполнения кода:
Billy Tom JonnyВот и всё, теперь вы знакомы с особенностями применения массива объектов в Java и знаете, как добавить объект в массив. В прочих аспектах всё функционирует практически так же, как и в массивах примитивных типов.
Как создать массив класса java
Для создания массива класса в Java необходимо сначала определить класс, затем создать массив, который содержит объекты этого класса.
Например, предположим, что у вас есть класс Person со следующим определением:
public class Person private String name; private int age; public Person(String name, int age) this.name = name; this.age = age; > >Вы можете создать массив объектов Person следующим образом:
Person[] people = new Person[3];Этот код создаст массив, который может содержать три объекта Person . Чтобы заполнить этот массив объектами, вы можете создать новый объект Person для каждого элемента массива:
people[0] = new Person("Alice", 25); people[1] = new Person("Bob", 30); people[2] = new Person("Charlie", 35);Теперь у вас есть массив объектов Person , который содержит три объекта с разными именами и возрастами.
Массив объектов в Java
Ранее на нашем сайте уже была размещена статья, посвященная массивам в Java. В ней мы рассказывали, что массив - это такой " контейнер ", который может вмещать в себя несколько однородных переменных.
У массивов есть несколько особенностей:
1. Они могут хранить переменные только одного типа ;
2. Размер массива нельзя поменять;
3. Массив имеет длину;
4. Элементы массивов имеют индексы, по которым к ним и обращаются в случае необходимости;
5. Номер первого элемента массива - 0 ;
6. Можно создавать пустые массивы, и "положить" в них элементы потом .
А вот что такое "массивы объектов" мы ранее не рассматривали. Давайте разберемся что к чему.
Массив объектов
По сути, у массивов объектов очень много общего с обычными массивами, только у них другая "начинка". Тем не менее, как Вы знаете, объекты гораздо "сложнее", чем переменные, потому что у них есть больше составляющих.
Массив объектов объявляется так же, как и массив переменных:
Как вы видите, у нас не массив разных объектов (стульев, столов и жевательных резинок). Это массив объектов одного класса (массив стульев, например).
Тут тоже все начинается и заканчивается названием класса , а в конце в квадратных скобках указывается размер массива:
Распространенная ошибка
Массив объектов отличается одной особенностью - они состоят из ссылок на объекты:
То есть в массиве не содержатся все переменные и методы каждого объекта, как Вы могли бы подумать, а только ссылки на эти самые объекты. Но тут возникает одна опасность. Обычно переменные в массивах имеют значения по умолчанию - если не задать, например, значение переменной int, то она по умолчанию будет равна 0 (больше информации про значения по умолчанию можно найти здесь).
В случает с объектами, происходит по-другому. В массиве должна храниться ссылка на объект, но пока объекта не существует, - ссылки на него тоже быть не может .
Поэтому, в массиве хранится значение по умолчанию null. Если Вы попробуете вызвать метод не созданного объекта, возникнет распространенная ошибка NullPointerException . Обязательно создайте свои объекты перед тем, как обращаться к ним!
Пример
Давайте создадим массив объектов. Допустим, у нас есть класс - ObjMass, и все, что в нем хранится - это массив объектов Cat из 3 элементов:




