A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

life木子飞

中级黑马

  • 黑马币:

  • 帖子:

  • 精华:

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

1 个回复

倒序浏览
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
不知道解释的对不对?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马