如果是在一个方法的某个代码快的内部声明变量,它的作用域就是这个代码块。代码块是指位于一对大括号“{}”以内的代码作者: 咖啡 时间: 2011-11-14 16:41
public class Test {
public static void main(String[] args){
{
int i=0;
i++;
int[] array = new int[1];
method(array,i);
System.out.println(array[0]+" "+i);
}
}
public static void method(int[] array,int i){
array[0] = 1;
这样就可以了。作者: fly51888 时间: 2011-11-14 18:15
{
int i=0;
i++;
}
是一个代码块,你所定义的变量是个局部变量。局部变量的特点是只在局部有效。当i 超过{}后就不再有效,而后面的代码中
method(array,i);
System.out.println(array[0]+" "+i);
又用到 i 。此时i已经不存在了。
改正后的代码可以如下:
第一种方法:
public class MaoPao {
public static void main(String[] args){
int i=0;
i++;
int[] array = new int[1];
method(array,i);
System.out.println(array[0]+" "+i);
}
public static void method(int[] array,int i){
array[0] = 1;
i = 1;
}
}
第二种方法:
public class MaoPao {
public static void main(String[] args){
int[] array = new int[1];
{
int i=0;
i++;
method(array,i);
System.out.println(array[0]+" "+i);
}
}
public static void method(int[] array,int i){
array[0] = 1;
i = 1;
}
}