Тонкости Java. Инициализатор массива.

92
Находится в разделах:

Есть у нас вот такая строчка кода:

В этой строчке кода мы объявляем переменную f типа "массив, основанный на примитивном типе int". Сначала, мы указали тип переменной, дальше задали ее имя, а квадратные скобки как раз и указываю на то, что f будет у нас массивом. Однако, создание переменной f еще не создает экземпляр самого массива. Давайте же его создадим, с помощью ключевого слова new:

- число 5 - это длина создаваемого массива.

На данный момент у нас создан массив, однако, сейчас он заполнен значениями по умолчанию. Для типа int - это 0. Следующим нашим шагом будет инициализация каждого по отдельности элементов массива: делается это как правило в цикле, например, вот так:

Все, наш массив создан, элементы его проинициализированы, он готов к использованию. Давайте же соединим воедино 3 наших шага:

Вот такой код у нас получился.
Однако существует другой способ создания массивов, который позволяет нам существенно уменьшить количество написанного кода, и этот способ называется инициализатором. В этом случае ключевое слово new не используется, а применяются фигурные скобки({}).
Переписываем наш код создания и инициализации элементов массива f с использованием инициализатора:

Лаконично, правда? Однако, в этой статье я не хотел "блеснуть" лаконичностью кода, а всего лишь хотел упомянуть об одной особенности использования инициализатора. Звучит она следующим образом:

if you use the {...} array form in anything but an initializer You can get the error  Array constants can only be used in initializers.

Что это значит? Давайте рассмотрим на примере. При использовании оператора new мы можем написать вот так:

А при использовании инициализатора:

так делать нельзя, код не скомпилируется.

Допустим только вот такой вариант записи:


Использовать инициализатор можно только в момент объявления переменной!


Конец
Бенджамин Франклин абсолютно уверен в том, что стоит отводить нужное время на все дела; большая спешка — большие потери.

вау дайте две

Отправить комментарий

CAPTCHA
Чтобы оставить комментарий, введите пожалуйста код, изображенный на картинке
Image CAPTCHA
Введите символы, изображенные на картинке