如下程序会输出什么?
public class Creator {
public static void main(String[] args) {
for(int i=0;i<100;i++)
Creature creature = new Creature();
System.out.println(Creature.numCreated());
}
}
class Creature{
private static long numCreated = 0;
public Creature(){
numCreated++;
}
public static long numCreated(){
return numCreated;
}
}
编译的时候发现:上面的程序在
Creature creature = new Creature(); 发现语法错误,这个为什么呢???,觉得很奇怪啊,
原来java语言规范不允许一个额本地变量声明语句作为一条语句在for,while,或do循环中重复执行。 一个本地变量声明作为一条语句只能直接出现在一个语句块中。
针对上面的程序:可以有几种方式来修改,Creature creature = new Creature();改成 new Creature(); 也可以改成
{
Creature creature = new Creature();
}
等等。。。。。。。。。。。。。。。。。。。。。