для моего проекта compsci Я создаю графический интерфейс, который должен хранить различную информацию для каждой даты месяца года. Это мой код достижения этих иерархических отношений. yy и mm являются открытыми статическими ArrayLists.
//Populating yy arraylist
for (int i = 0; i<52; i++)
{
Year y = new Year();
y.setYear(1968+i);
for (int n = 0; n<12;n++)
{
Month m = new Month();
DateCal[] dd = new DateCal[31];
m.setMonth(n+1);
for(int c = 0; c<31;c++)
{
dd[c] = new DateCal();
dd[c].setDd(c+1);
dd[c].setMm(n+1);
dd[c].setYy(1968+i);
}
m.setDate(dd);
mm.add(m);
}
y.setMonth(mm);
yy.add(y);
}
После заполнения массива я должен иметь возможность получить год выбранной даты, используя слой за слоем, например:
yy.get(50).getMonth().get(3).getDate()[5].getYy()
Проблема в том, что когда я добавляю Month m в mm, dd содержит правильные значения года. Однако после строки mm.add (m) значение каждого года для любой даты устанавливается равным 1968. Поэтому, если бы я сделал mm.get(2).date[3].getYy()
внутри цикла for, он бы получил правильное значение года, но не после того, как я добавил y чтобы yy и сделать getYy () на свидание; даты просто теряют присвоенное значение года.
Я пытался использовать конструкторы месяц и год, сделать y и m общедоступными статичными, и все, что мог. Я застрял на этом в течение нескольких дней. Я просто не могу понять, почему это не будет правильно хранить значения. Проблема возникает из этой части моего кода и только здесь; в классах Month, Year или DateCal ошибок нет. Я обещаю. Я был бы очень признателен, если бы кто-нибудь мог взглянуть! Я в отчаянии! :))