В этой лекции было рассмотрено устройство массивов в Java. Подобно массивам в других языках, они представляют собой набор значений одного типа. Основным свойством массива является длина, которая в Java может равняться нулю. В противном случае, массив обладает элементами в количестве, равном длине, к которым можно обратиться, используя индекс, изменяющийся от О до величины длины без единицы. Длина задается при создании массива и у созданного массива не может быть изменена. Однако она не входит в определение типа, а потому одна переменная может ссылаться на массивы одного типа с различной длиной.
Создать массив можно с помощью ключевого слова new, поскольку все массивы, включая определенные на основе примитивных значений, имеют объектный тип. Другой способ - воспользоваться инициализатором и перечислить значения всех элементов. В первом случае элементы принимают значения по умолчанию (О, false, null).
Особым образом в Java устроены многомерные массивы. Они, по сути, являются одномерными, основанными на массивах меньшей размерности. Такой подход позволяет единообразно работать с многомерными массивами. Также он дает возможность создавать не только "прямоугольные" массивы, но и массивы любой конфигурации.
Хотя массив и является ссылочным типом, работа с ним зачастую несет некоторые особенности. Рассматриваются правила приведения типа массива. Как для любого объектного типа, приведение к Object является расширяющим. Приведение массивов, основанных на ссылочных типах, во многом подчиняется обычным правилам. А вот примитивные массивы преобразовывать нельзя. С преобразованиями связано и возникновение ошибки ArrayStoreException, причина которой - невозможность личного отслеживания типов в преобразованном массиве для компилятора.в заключение рассматриваются последние случаи взаимосвязи тищ переменной и ее значения.
Наконец, изучается механизм клонирования, существующий с самых первых версий Java и позволяющий создавать точные копии объектов, если их классы позволяют это делать, реализуя интерфейс Cioneable Поскольку стандартное клонирование порождает только один новый объект, это приводит к особым эффектам при работе с объектными полями классов и массивами.
Вопросы для самоконтроля:
Массивы как тип данных в Java
Объявление массивов
Инициализация массивов
Многомерные массивы
Класс массива
Преобразование типов для массивов
Ошибка ArrayStoreException
Переменные типа массив и их значения
Клонирование
Клонирование массивов
Рекомендуемая литература:
Java. Справочник (4 изд.) - Флэнаган Д.
Искусство программирования на Java - Шилдт Г.
Платформа программирования J2ME для портативных устройств - Пирумян В.
Java Server Pages. Библиотека профессионала - Гери Д.М.
Разработка Web-служб средствами Java - Хабибуллин И.Ш.
Программирование на Java. Курс лекций - Вязовик Н.А.
Язык программирования Java: Создание интерактивных приложений для Internet - Карабин П.Л.
Java в примерах. Справочник - Флэнаган Д.
Ноутон П., Шилдт Г. - Java 2. Наиболее полное руководство
Дейтел Х.М. - Технологии программирования на Java 2. Книга 3. Корпоративныесистемы, сервлеты, JSP, Web-сервисы