Первая статическая функция или переменная может быть вызвана без создания объекта, это означает, что статическая функция или переменная является общей для всех создаваемых вами объектов.Кроме того, статические функции могут получать доступ только к другим статическим переменным и статическим функциям, но не к переменной или функции, которая не является статической, также нестатические функции могут напрямую обращаться к статическим функциям и статическим переменным ...
В вашем коде
public int currentHour =0;
int currentMinute= 0;
int currentSecond= 0;
не являются статическими переменными, поэтому вы получили сообщение об ошибке «Нестатическая переменная не может быть указана»здесь функция печати является статической, если мы сделаем все остальные функции статическими, то она будет работать, или
объявит
ваши переменные как
public class time
{
public static int currentHour =0;
public static int currentMinute= 0;
public static int currentSecond= 0;
.....
....
....
public static void print()
{
System.out.printf("Current time is %d:%d:%d\n",currentHour,
currentMinute,currentSeconds);
}
}
здесь все три переменныестатичны, поэтому доступны из статической функции print