java中的作用域其实很简单,那即是你无论在什么地方,作用域其实就是个闭合的{},也就是说,你无论是用什么循环、开关、判断等等语句,这都和作用域无关,真正有关系的是一个闭合的{},凡是在{}中定义的变量离开{}就失效!——http://www.delphibbs.com/keylife/iblog_show.asp?xid=1425 for(int i=0;i<3;i++) int i = 0 这个行在for的{}外。(个人见解)
i 被重复定义了, void f(){ for(int i=0;i<3;i++){ System.out.println("love"); } }这样
而for(){}是块变量。
不矛盾啊
重复定义
java不允许这样。有些其它语言,则在编译时报告警告信息。
谁能说下是什么东西?方法?他没有修饰符。构造方法?貌似构造方法不能有返回值。
菜鸟求问!谁能解释下这是什么东西????
只是。楼主想说明什么东西呢。(我只是菜鸟)
静态变量》 实例变量》局部变量 》 块变量。
互相之间不矛盾的。
为什么for()里边的块变量就不能与外部局部变量一致 了呢。
要高手出现了。
for(int i=0;i<3;i++){
System.out.println("love");
}
}这样
class T {
static String CLASS_VARIABLE = "ClassVariable"; // CLASS_VARIABLE: class variable - 类变量(静态变量) public T(String name) { // name: Constructor parameters - 构造器的参数
this.name = name;
} String name = "instanceVariable"; // name : instance variable - 实例变量 int[] array = new int[10]; // array[1]: array component - 数组分量 String setName(String str) { // str: method parameter - 方法参数
try {
String oldName = this.name; // oldName : local variable - 本地变量(局部变量)
this.name = str;
return oldName;
}catch(Exception e) { // e: exception-handler parameter - 异常处理函数的参数
//TODO:
}
}
}这是Java中的7中变量,没你说的“块变量”
BTW: 你所说的“块变量”i (for(int i=0;i<3;i++){}) 这个也是本地变量
for(i=0;i<3;i++){
System.out.println("love");
}
}
这样写是正确的!
java中不允许代码快中的变量来隐藏快外的变量的,而是直接报变量重复定义
在一个方法里是不能重复定义一个变量的。
for(i=0;i<3;i++){
int i =3;
System.out.println("love");
}
}又能说明什么?
void f(int i){
for(i=0;i<3;i++){
int i =3;
System.out.println("love");
}
}又能说明什么?@nan125001930 大家都看出来了嘛,就是i你重新定义了。就是,都是局部变量(或参数变量),作用域都是一样的,当然不能重新定义。
还有,貌似Java中没有块变量的