一串神奇的代码,各位大神们,下面这个程序的结果怎么是零呀?
求原因 :多谢,多谢!
class VarAll
{
private int num=0;
VarAll va;
public void add()
{
int a;
va=new VarAll();
for(a=0;a<100;a++)
{
num=num+1;
}
va.show();
}
public void show()
{
System.out.println("num="+num);
}
public static void main(String[] args)
{
VarAll va=new VarAll();
va.add();
}
}java
求原因 :多谢,多谢!
class VarAll
{
private int num=0;
VarAll va;
public void add()
{
int a;
va=new VarAll();
for(a=0;a<100;a++)
{
num=num+1;
}
va.show();
}
public void show()
{
System.out.println("num="+num);
}
public static void main(String[] args)
{
VarAll va=new VarAll();
va.add();
}
}java
显示这个对象的成员num,这个对象的num没操作过,当然是0了
而你上面的+100操作是对本对象,即main函数中的va队形进行的,因此输出为0.
不信你将add函数中的va.show()改为show(),输出则该为100.
public class VarAll
{
private int num = 0;
VarAll1111111111111111111111 va1111111111111111111111; public void add()
{
int a;
va1111111111111111111111 = new VarAll1111111111111111111111();
for (a = 0; a < 100; a++)
{
num = num + 1;
}
va1111111111111111111111.show();
} public void show()
{
System.out.println("num=" + num);
} public static void main(String[] args)
{
VarAll va = new VarAll();
va.add();
}
}class VarAll1111111111111111111111
{
private int num = 0;
VarAll222222222222222222 va222222222222222222; public void add()
{
int a;
va222222222222222222 = new VarAll222222222222222222();
for (a = 0; a < 100; a++)
{
num = num + 1;
}
va222222222222222222.show();
} public void show()
{
System.out.println("num=" + num);
}
}
class VarAll222222222222222222
{
private int num = 0;
VarAll33333333333333333333 va33333333333333333333; public void add()
{
int a;
va33333333333333333333 = new VarAll33333333333333333333();
for (a = 0; a < 100; a++)
{
num = num + 1;
}
va33333333333333333333.show();
} public void show()
{
System.out.println("num=" + num);
}
}
..................