-1

这个程序没有问题

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();

在 main 方法之外,然后在类内部使用引用c我找不到 Calendar 类的任何方法

我知道 Calendar 类是抽象的,它返回一个子类的实例以分配给引用,但为什么我不能使用引用来访问主方法之外的方法?

4

1 回答 1

1

当您移出Calendar c = Calendar.getInstance();主函数时,您将在类中创建 NON 静态变量Test

要在静态方法中使用此变量,main您需要编写如下内容:

new Test().c.METHOD_NAME

另一种选择是添加static到变量声明中,然后您将能够直接在 main 中使用它

于 2017-05-18T17:45:30.603 回答