Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
Рассмотрим гипотетическое объявление класса для массива, основанного на неком объектном типе Element.
Объявление класса начинается с перечисления модификаторов, среди которых особую роль играют модификаторы доступа. Класс массива будет иметь такой же уровень доступа, как и базовый тип. То есть если Element объявлен как public-класс, то и массив будет иметь уровень доступа public» Для любого примитивного типа класс массива будет public. Можно также указать модификатор final, поскольку никакой класс не может наследоваться от класса массива.
Затем следует имя класса, на котором можно подробно не останавливаться, т.к. к типу массив обращение идет не по его имени, а по имени базового типа и набору квадратных скобок.
Затем нужно указать родительский класс. Все массивы наследуются Напрямую от класса Object. Далее перечисляются интерфейсы, которые Реализует класс. Для массива это будут интерфейсы Cloneable и ^Tializable. Первый из них подробно рассматривается в конце этой лекции, а второй будет описан в следующих лекциях.
Тело класса содержит объявление одного public final поля length типа Кроме того, переопределен метод с1опе() для поддержки интерфейса C|oneable.
Сведем все вышесказанное в формальную запись класса:
[public] class A implements Cloneable, java.io.Serializable { public final int length; // инициализируется при создании
public Object clone() { try{
return super.clone(); } catch (CloneNotSupportedException e) { throw new lnternalError(e.getMessage());
}
}
}
Таким образом, экземпляр типа массив является полноценным объектом, который, в частности, наследует все методы, определенные в классе Object, например, toString(), hashCodeQ и остальные.
Например:
// результат работы метода toString() System.out.println(new int[3]); System.out.println(new int[3][5]); System.out.println(new String[2]);
// результат работы метода hashCode() System.out.println(newfloat[2].hashCode()); Результатом выполнения программы будет:
[I@26b249 [[I@82f0db
[Ljava.lang.String;@92d342 7051261
Преобразование типов для массивов
Теперь, когда массив введен как полноценный тип данных в Java, рассмотрим, какое влияние он окажет на преобразование типов.
Ранее подробно рассматривались переходы между примитивными11 обычными (не являющимися массивами) ссылочными типами