class Variable
{
int x=0,y=0,z=0;
void init(int x,int y)
{
this.x=x;
this.y=y;
int z=5;
System.out.println("x="+x+"y="+y+"z="+z);
}
}public class VariableTest
{
public static void main(String[] args)
{ Variable v=new Variable();
System.out.println("x="+v.x+"y="+v.y+"z="+v.z);
v.init(20,30);
System.out.println("x="+v.x+"y="+v.y+"z="+v.z); }
}结果:x=0 y=0 z=0 //这是调用域变量的结果
x=20 y=30 z=5 //这是 v.init(20,30)的结果
x=20 y=30 z=0 //可是这个的结果是怎么调用的?最后一句Syste.out...的v.x和v.y怎么会是20和30呢?难道它调用的是init()方法的吗?即使是的话,那Z应该是5啊?
{
int x=0,y=0,z=0;
void init(int x,int y)
{
this.x=x;
this.y=y;
int z=5;
System.out.println("x="+x+"y="+y+"z="+z);
}
}public class VariableTest
{
public static void main(String[] args)
{ Variable v=new Variable();
System.out.println("x="+v.x+"y="+v.y+"z="+v.z);
v.init(20,30);
System.out.println("x="+v.x+"y="+v.y+"z="+v.z); }
}结果:x=0 y=0 z=0 //这是调用域变量的结果
x=20 y=30 z=5 //这是 v.init(20,30)的结果
x=20 y=30 z=0 //可是这个的结果是怎么调用的?最后一句Syste.out...的v.x和v.y怎么会是20和30呢?难道它调用的是init()方法的吗?即使是的话,那Z应该是5啊?
int z=5;
System.out.println("x="+x+"y="+y+"z="+z);这里的z是个局部变量,不是实例变量,实例变量还是0
this.y=y;
这里不是修改了实例变量的值了吗?
而且
System.out.println("x="+x+"y="+y+"z="+z);
也是打印局部变量的值this.x=x;
this.y=y;
{
this.x=x;
this.y=y;
int z=5;
System.out.println("x="+x+"y="+y+"z="+z);
}
}
这里的Z是局部变量。用完就没了
和这个类中声明的Z全局变量不一样。用完还在