Массивы в Java. Создание массива объектов класса java

Страницы работы

Фрагмент текста работы

Программирование Тема 2.1 Массивы в Java

1

Массивы в Java

  • Одномерные массивы базовых типов
  • Объявление ссылки на массив:
  • базовый_тип[] имя_массива;
    • Например: int[] arr;
  • Выделение памяти и инициализация массива:
  • имя_массива = new базовый_тип [размер];
    1. arr = new int[10]; // инициализируется значениями 0
    2. arr = new int[] {4,7,9,12,3,8,9,2,6,1};
    3. int N = 10; arr = new int[N];
    4. for(int i=0; i< arr.length; i++) arr[i] = i+1;
  • Совмещение объявления, выделения памяти и инициализации:
    • int[] arr = new int[10];
    • int[] arr = new int[] {4,7,9,12,3,8,9,2,6,1};
    • int[] arr = {4,7,9,12,3,8,9,2,6,1}; // new подразумевается

2

Массивы в Java

  • Массив — набор элементов одного и того же типа, объединенных общим именем.
  • Массивы в Java относятся к ссылочным типам данных. Имя массива является ссылкой на область кучи (динамической памяти), в которой последовательно размещается набор элементов определенного типа. Выделение памяти под элементы массива выполняется с помощью операции new, а за освобождением памяти следит сборщик мусора.
  • Рассмотрим следующие типы массивов: одномерные массивы базовых типов, одномерные массивы объектов и многомерные массивы (двумерные прямоугольные и двумерные ступенчатые).
  • Одномерный массив – это фиксированное количество элементов одного и того же типа, объединенных общим именем, где каждый элемент имеет свой номер. Нумерация элементов массива в Java начинается с нуля.
  • Одномерный массив в Java реализуется как объект, поэтому его создание состоит из двух этапов. Сначала объявляется ссылочная переменная типа массив, затем выделяется память под требуемое количество элементов базового типа, и ссылочной переменной присваивается адрес нулевого элемента в массиве. Базовый тип определяет тип данных каждого элемента массива. Количество элементов, которые будут храниться в массиве, определяется размером массива. Размер массива может быть задан переменной, но массив не может иметь переменный размер, то есть переменная задающая размер массива должна получить значение до создания массива. Размер массива может быть запрошен через поле length. Поле length. является final, потому выставить через него новый размер массива, увы, не получится.
  • В Java элементам массива присваиваются начальные значения по умолчанию в зависимости от базового типа. Для арифметических типов – нули, для ссылочных типов – null, для символов - символ с кодом ноль. Кроме того, можно произвести инициализацию массива c использованием списка инициализации, который размещается в фигурных скобках или поэлементно в цикле.
  • При необходимости, этапы объявления ссылочной переменной типа массив, и выделения необходимого объема памяти могут быть объединены в один.
  • JVM проверяет выход за границы массива, и в случае необходимости генерирует исключение:
  • ArrayIndexOutOfBoundsException;

3

Массивы в Java

  • Одномерные массивы объектов
  • Пример: Создание массива объектов класса java.util.Date

4

Массивы в Java

  • Большая часть из того, что сказано о массивах базовых типов, верна и для массивов объектов. Их размер может быть получен через .length, выход за границы контролируется.
  • Создание массива объектов состоит из двух этапов. Сначала с помощью операции new отводится память под массив ссылок на объекты, затем в цикле с помощью операции new выделяется память под объекты.
  • В примере на слайде создается массив объектов класса java.util.Date. Если цикл:
  • for(int i=0;i< dates.length;i++)
  • dates[i] = new Date();
  • будет пропущен, то будет ошибка  NullPointerException, которая означает, что массив ссылок на объекты создан и его элементы инициализированы значением null, однако сами объекты не созданы.

5

Массивы в Java

  • Оператор цикла for в стиле forech
  • for(тип итер_пер : массив) блок_операторов
  • Пример:

6

Массивы в Java

  • Во многих языках программирования существует более компактная форма оператора цикла for для перебора элементов массивов и элементов коллекций - foreach.
  • В Java решили не добавлять новое ключевое слово, а просто сделали усовершенствованный вид цикла for.
  • Оператор for в стиле foreach перебирает элементы массива последовательно, начиная с первого и заканчивая последним.
  • В примере на слайде при прохождении цикла итерационной переменной

Похожие материалы

Информация о работе