русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Объявление массивов


Дата добавления: 2015-06-12; просмотров: 454; Нарушение авторских прав


В качестве примера рассмотрим объявление переменной типа "мас­сив, основанный на примитивном типе int": inta[];

Как мы видим, сначала указывается базовый тип. Затем идет имя пе­ременной, а пара квадратных скобок указывает на то, что используемый тип является именно массивом. Также допустима запись: int[] а;

Количество пар квадратных скобок указывает на размерность масси­ва. Для многомерных массивов допускается смешанная запись: int[]a[];

Переменная а имеет тип "двумерный массив, основанный на int". Аналогично объявляются массивы с базовым объектным типом: Pointp,p1[],p2[][];

Создание переменной типа массив еще не создает экземпляры это­го массива. Такие переменные имеют объектный тип и хранят ссылки на объекты, однако изначально имеют значениеnull (если они являются полями класса; напомним, что локальные переменные необходимо явно инициализировать). Чтобы создать экземпляр массива, нужно воспользоваться ключевым словомnew, после чего указывается тип массива и в квадратных скобках - длина массива.

inta[]=newint[5]; Point[] р = new Point[10];

Переменная инициализируется ссылкой, указывающей на только что созданный массив. После его создания можно обращаться к элементам, используя ссылку на массив, далее в квадратных скобках указывает­ся индекс элемента. Индекс меняется от нуля, пробегая всю длину массива до максимально допустимого значения, на единицу меньшего длины массива.

intarray[]=newint[5]; for (int i=0; i<5; i++) { array[i]=i*i;}

for(intj=0;j<6;j++){

System.out.println(j+"*"+j+"="+array[j]); }

Результатом выполнения программы будет:

0*0=0 1*1=1 2*2=4 3*3=9 4*4=16

И далее появится ошибка времени исполнения, так как индекс пре­высит максимально возможное для такого массива значение. Проверка, не выходит ли индекс за допустимые пределы, происходит только во вре­мя исполнения программы, т*е. компилятор не пытается выявить эту ошибку даже в таких явных случаях, как:



inti[]=newint[5];

i[-2]=0; // ошибка! индекс не может быть отрицательным

Ошибка возникнет только на этапе выполнения программы.

Хотя при создании массива необходимо указывать его длину, это значение не входит в определение типа массива, важна лишь размерность. Таким образом, одна переменная может ссылаться на массивы разной длины:

inti[]=newint[5];

i=new int[7]; // переменная та же, длина массива другая

Однако для объекта массива длина обязательно должна указываться при создании и уже никак не может быть изменена. В последнем примере присвоения переменной ссылки на массив большей длины потребовалось создать новый экземпляр.

Поскольку для экземпляра массива длина является постоянной характеристикой, для всех массивов существует специальное поле length позволяющее узнать ее значение. Например:

Point p[]=new Point[5]; for (int i=0; Kp.length; i++) {

p[i]=new Point(i, i); }

Значение индекса массива всегда имеет тип int. При обращении к элементу можно также использовать byte, short или char, поскольку эти типы автоматически расширяются до int. Попытка задействовать long приведет к ошибке компиляции.

Соответственно, и поле length имеет тип int, а теоретическая макси­мально возможная длина массива равняется 2^'-1, то есть немногим боль­ше 2 млрд.

Продолжая рассматривать тип массива, подчеркнем, что в качестве базового типа может использоваться любой тип Java, в том числе:

• интерфейсы. В таком случае элементы массива могут иметь значе­ние null или ссылаться на объекты любого класса, реализующего этот интерфейс;

• абстрактные классы. В этом случае элементы массива могут иметь значение null или ссылаться на объекты любого неабстрактного класса-наследника.

Поскольку массив является объектным типом данных, его значения могут быть приведены к типу Object или, что то же самое, присвоены пе­ременной типа Object Например,

Object о = newint[4];

Это дает интересную возможность для массивов, основанных на ти­пе Object, хранить в качестве элемента ссылку на самого себя:

Object arr[] = new Object[3];

arr[0]=new Object{);

arr[1]=null;

arr[2]=arr; // Элемент ссылается на весь массив!



<== предыдущая лекция | следующая лекция ==>
 | Инициализация массивов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.124 сек.