class firsttry{
public static void main(String [] args){
int a=10;
firsttry first = new firsttry();
first.calculate(a);
}
public void calculate(int b){
for(int i=0;i<10;i++){
System.out.println(b);
b+=10;
}
}
}
我运行了程序,运行正常。我想知道怎么可能。它不分配无限的内存。 "first"
对象本身内有"first"
个对象,依此类推。请解释一下。
答案 0 :(得分:4)
main
是一个静态方法,因此它不需要任何类型firsttry
的对象实例(即,不创建类型为firsttry
的对象)。特别是,当您创建main
类型的新对象时,firsttry
不,因此仅new
调用执行一次。
如果您在类new firsttry(..)
的构造函数中有firsttry
,则确实存在执行infinite
次的危险。
答案 1 :(得分:0)
没有。这完全正常。看:
您运行static main
。你现在没有Instance。
您创建firsttry
的实例,然后调用calculate
,其循环结束条件。实例化main
时,不会调用firsttry
方法。这不是构造函数,而是static
方法。
所以,它将运行循环然后停止。这很正常。
答案 2 :(得分:0)
我不知道你想问什么,但我认为你在静态方法和对象之间感到困惑。 main()
是一个静态方法,不需要实例化。此外,如果你感到困惑:
firsttry first = new firsttry();
然后:
firsttry first;
是声明并且:
first = new firsttry();
是实例化。