Вызов статического метода для абстрактного класса вне основного метода
Эта программа работает без проблем
public class Test{
static int DAY_IM = 1000*60*60*24;
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
c.set(2004,0,7,15,40);
long day1 = c.getTimeInMillis();
for (int i =0; i < 15 ; i++) {
day1 += (DAY_IM *29.52);
c.setTimeInMillis(day1);
out.println(String.format("full moon on %tc ",c));
}
}
Я хочу понять, почему, когда я перемещаю эту строку
Calendar c = Calendar.getInstance();
Вне основного метода и внутри класса используйте ссылку c
Я не могу найти метод класса календаря
Я понимаю, что класс Calendar является абстрактным, и это возвращает экземпляр подкласса для назначения ссылки, но почему я не могу использовать ссылку для доступа к методам вне метода main?
1 ответ
Решение
Когда вы двигаетесь Calendar c = Calendar.getInstance();
вне основной функции вы создаете НЕ статическую переменную в классе Test
использовать эту переменную в статическом методе main
вам нужно написать что-то вроде этого:
new Test().c.METHOD_NAME
Другой вариант - добавить static
к объявлению переменной, то вы сможете использовать ее в основном напрямую