黑马程序员技术交流社区
标题:
对象调用静态成员变量
[打印本页]
作者:
飘雪恩情
时间:
2014-3-25 12:25
标题:
对象调用静态成员变量
public class AccessProperty
{ static int i=47;
public void call()
{ System.out.println("调用call()方法");
for(i=0;i<3;i++)
{
System.out.println(i+"");
if(i==2)
{
System.out.println("\n");
}
}
public AccessProperty ( )
{ }
public static viod main(String[] args)
{
AccessProperty t1=new AccessProperty ( );
AccessProperty t2=new AccessProperty ();
t2.i=60;
System.out.println(t1.i++);
t1.call();
System.out.println( t2.i);
t2.call();
}
}
t2.i为什么等于3?是怎么算的?
作者:
chen_x
时间:
2014-3-25 13:15
static成员变量是一个类的共享变量,该类的实例对象操作的都是同一个地址块上的值。
t2.i=60; //将 i 赋值为60
System.out.println(t1.i++); //先打印了 i 的值,然后 i 自增,变成61
t1.call(); // call函数中执行了for循环,for循环的初始化语句先执行,就将 i 赋值为0了,然后执行循环体,i=2时的循环体执行完后,i++执行,值为3,然后判断循环终止条件满足,call函数结束,i 就保持为3,t2.i =3.
作者:
osully
时间:
2014-3-25 13:30
建议你在for循环 初始化表达式里 加个int 应该会是你要的结果
for (int i = 0; i < 3; i++) {
System.out.println(i + "");
if (i == 2) {
System.out.println("\n");
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2