如下程序會輸出什么?
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;
}
}
編譯的時候發(fā)現(xiàn):上面的程序在
Creature creature = new Creature(); 發(fā)現(xiàn)語法錯誤,這個為什么呢???,覺得很奇怪啊,
原來java語言規(guī)范不允許一個額本地變量聲明語句作為一條語句在for,while,或do循環(huán)中重復(fù)執(zhí)行。 一個本地變量聲明作為一條語句只能直接出現(xiàn)在一個語句塊中。
針對上面的程序:可以有幾種方式來修改,Creature creature = new Creature();改成 new Creature(); 也可以改成
{
Creature creature = new Creature();
}
等等。。。。。。。。。。。。。。。。。。。。。