Класс Class является метаклассом для всех классов Java. Его объекты хранят информацию про другие классы, (в учереждении-это инструкция, которая описывает инструкции). Для каждого нового класса создается объект этого класса. Объект создается при загрузкие класса Ххх.class. В объекте этого класса хранятся методы, и статические поля для класса Ххх.
Например, если в программе есть строка:
Point p=new Point (1,2);
То это означает, что в системе созданы следующие объекты:
1. объект типа Point, описывающий точку (1,2);
2. объект класса Class, описывающий класс Point;
3. объект класса Class, описывающий класс Object. Так как класс Point наследует от Object, описание этого класса также необходимо;
4. объект класса Class, который описывает сам класс Class. Это обычный Java – класс, который должен быть загружен по общим правилам. Одно из применений класса Class – использование метода getClass() класса Object. Если продолжить последний пример с Point:
Class cl = p.getClass ();
Class cl2 = cl.getClass ();
Class cl3 = cl2.getClass ();
выражение cl2 = = cl3 верно.
Инициализация массивов
Массив – последовательность объектов или примитивов одного типа, обозначаемая одним идентификатором.
Массив – класс;
Имя массива – ссылка;
Массив находится в Heap.
int [] a = new int [10]; // выделяется память и заполняется нулями
int [] a1 = {1, 2, 3, 4, 5};
int [] a2;
a2=a1;
Единственное доступное поле: length. Указывает, сколько элементов зарезервировано в массиве.
Последний элемент в массиве [a.length-1]
for (int i=0; i<a1.length; i++)
System.out.println (“a1[“ + i + ”] =” + a1[i]);
Метод для преобразования массива в строку:
import java.util.*;
System.out.println (Arrays.toString(a1);)
Для выбора случайного размера:
main (…) {
Random rand = new Random (47);
a = new int [rand.nextInt (20)];}// от 0 до 19
Для непримитивных типов масив – это масив ссылок:
Integer [] a= new Integer [rand.nextInt (20)];
for (int i=0; i<a.length; i++)
a [i] = new Integer (rand.nextInt (500));
System.out.println (Arrays.toString (a));
Инициализация:
Integer [] a = new {new Integer (1), new Integer (2)};
либо:
Integer [] a = new Integer [] {new Integer (1), new Integer (2)};
Список аргументов переменной длины
Можно использовать массив
class A { int i;}
public class VarArgs {
static void printArray (Object [] args){
for (int i=0; i<args.length; i++)
System.out.println (args [i]+ “”);
System.out.println ();
}
public static void main (String [] args){
printArray (new Object [] {
new Integer (47), New Float (3.14), new Double (11.11)
});
printArray (new Object[] {“раз”, “два”, “три”});
printArray (new Object[] {new A(), new A (), new A ()});
}
} // 47 3.14 11.11