黑马程序员技术交流社区
标题:
新手提问 关于对象调用静态成员变量的问题
[打印本页]
作者:
life木子飞
时间:
2015-6-28 16:50
标题:
新手提问 关于对象调用静态成员变量的问题
public class Ap
{
static int i=47;
public void call()
{
System.out.println("调用call()方法");
for(i=0;i<5;i++)
{
System.out.print(i+" ");
if(i==4)
{
System.out.println("\n");
}
}
}
public Ap(){}
public static void main(String[] args)
{
Ap a1=new Ap();
Ap a2=new Ap();
a2.i=60;
System.out.println("第一个实例对象调用变量i的结果:"+a1.i);
a1.call();
System.out.println("第二个实例对象调用变量i的结果:"+a2.i);
a2.call();
}
}
为什么这个程序执行后 a2.i 的打印结果是 5
作者:
腹黑生姜
时间:
2015-6-28 20:28
for循环里面的i其实就是静态的那个i,它没有重新创建变量, 当执行到 a1.call();的时候,
for(i=0;i<5;i++)
{
System.out.print(i+" ");
if(i==4)
{
System.out.println("\n");
}
当i==4时换行后,i还会回到for循环++一下,所以i=5,
所以a2.i 的打印结果是 5
不知道解释的对不对?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2