标题: 不能编译 [打印本页] 作者: 付星 时间: 2012-1-3 17:40 标题: 不能编译 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;
}
}作者: 李盈科 时间: 2012-1-3 17:47 本帖最后由 李盈科 于 2012-1-3 17:51 编辑
改完了 看一下
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());
}
}
复制代码
局部变量的作用范围是在一个块内,也可以理解为在{ }内。for 循环可以不使用{ }的,但仅限于
执行语句(其中并不包括变量声明语句)。作者: 曾运 时间: 2012-1-3 17:51
for (int i = 0; i < 100; i++)
Creature creature = new Creature();//这里不能编译,为什么?
你在for循环里面的代码相等于执行了100次的:
Creature creature = new Creature();
Creature creature = new Creature();
Creature creature = new Creature();
Creature creature = new Creature();
Creature creature = new Creature();
……
creature 引用变量重复了啊!!!!!作者: 为梦而战 时间: 2012-1-3 17:57
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;
}
}
运行结果:1到100,这是你要的结果吗?如果是话,那你是错误就是for(){}这里两行代码没有上{}。上了之后就是你要的结果,我加上{}运行了,没问题作者: 杨旭 时间: 2012-1-3 17:58