已有101人关注
成员变量不被任何一个对象改变的问题,静态static
发表在Java图书答疑 2013-12-12
是否精华
版块置顶:
public class AccessProperty {
static int i = 47; // 定义静态成员变量

public void call() { // 定义成员方法
System.out.println("调用call()方法");
for (i = 0; i < 3; i++) {
System.out.print(i + " ");
if (i == 2) {
System.out.println("\n");
}
}
}

public AccessProperty() { // 定义构造方法
}

public static void main(String[] args) { // 定义主方法
AccessProperty t1 = new AccessProperty(); // 创建一个对象
AccessProperty t2 = new AccessProperty(); // 创建另一个对象
t2.i = 60; // 将类成员变量赋值为60
// 使用第一个对象调用类成员变量
System.out.println("第一个实例对象调用变量i的结果:" + t1.i++);
t1.call(); // 使用第一个对象调用类成员方法
// 使用第二个对象调用类成员变量
System.out.println("第二个实例对象调用变量i的结果:" + t2.i);
t2.call(); // 使用第二个对象调用类成员方法
}
}


" + t1.i++为60,为什么 + t2.i是3而不是60呢。调用t1.call后的i是3,可是这个不是局部变量么?
分享到:
精彩评论 1
无语_mrkj
学分:3155 LV11
2013-12-13
沙发
静态成员变量也称为全局变量,一个static变量单独划分一块存储空间,不与具体的对象绑定在一起,该存储空间被类的各个对象所共享。所以当执行了t1.call后,i的值就 改变为3了,再调用t2.i时,结果仍然是3,而不是60.
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照