Предположим, у меня есть два класса в пакете Java:
Class1.java
и Class2.java
Итак, если в Class1.java
, я делаю следующее:
public Class2[] QR;
public static int x = 10;
Затем позже где-нибудь в коде:
QR = new Class2[x];
Итак, в основном, я буду передавать значение 10 в класс2, верно? Пожалуйста, поправьте меня, если я не понял его должным образом.
Нет, вы не проходите 10 до значения класса2. Вы создаете массив класса 2, размер которого равен 10.
Подробное объяснение:
public Class2[] QR;
В этом утверждении вы говорите: "Привет, я хочу держать некоторые объекты класса 2 в массиве с именем QR. (До сих пор вы не указали, сколько объектов вы хотите сохранить в QR, поэтому инициализация массива еще не завершена)
QR = new Class2[x];
Здесь вы говорите, теперь я знаю, сколько объектов (x много элементов) я сохраню в QR, поэтому распределяйте память (через новое ключевое слово) на QR.
Таким образом, в основном вы только что инициализировали массив с количеством элементов, которые вы будете хранить в массиве, т.е. Вы указали размер массива.
Теперь объект class2 будет находиться на некотором индексе в QR (индекс от 0 до 9). Class2 c = QR[0];//for example
QR = new Class2[x];
Это создает массив Class2 размером 10.
Вы можете создать массив Class2
и инициализировать его, как:
public Class2[] QR; // Declare the array
public static int x = 10;
QR = new Class2[x]; // Allocate for 10 instances memory
// Now create the and init the instances
for (int i=0 ; i<QR.lenght ; i++) {
QR[i] = new Class2(); // Call the constructor
}
I will be passing value 10 to class2
. Нет. Значение 10 будет использовано в выражении создания массива. Это не связано сClass2
.