Здесь есть две отдельные концепции: создание массива ссылок и создание экземпляров вашего класса. Итак, эта строка:
AllComponents = new Component[nComponents]
создаст массив Component
ссылок. Первоначально все ссылки будут нулевыми. Если вы хотите заполнить его ссылками на новые экземпляры, вам нужно следовать этой строке:
for (int i = 0; i < nComponents; i++)
{
AllComponents[i] = new Component();
}
РЕДАКТИРОВАТЬ: Чтобы ответить на комментарий, AllComponents
является массивом - он не имеет понятия Shifts
или Couplings
. Если вам нужно установить сдвиги или связи для нового компонента, вы должны использовать либо:
for (int i = 0; i < nComponents; i++)
{
AllComponents[i] = new Component();
AllComponents[i].Shifts = // Code here
AllComponents[i].Couplings = // Code here
}
или
for (int i = 0; i < nComponents; i++)
{
Component component = new Component();
component.Shifts = // Code here
component.Couplings = // Code here
AllComponents[i] = component;
}
или добавьте параметры в конструктор для Component
, чтобы принять смены и связи.
Между прочим, я предполагаю, что вы новичок в Java, и вам нужна только помощь по этой конкретной проблеме на данный момент - когда вы будете готовы двигаться дальше, стоило бы взглянуть на Java соглашения о кодировании и более надежная инкапсуляция ваших данных. (Использование открытых переменных, как правило, плохая идея.)