Java编程中对象调用静态变量和成员变量有什么区别,该怎么处理

 我来答
samismiling
2017-06-08 · 知道合伙人软件行家
samismiling
知道合伙人软件行家
采纳数:1340 获赞数:5603

向TA提问 私信TA
展开全部
对于java来说,调用static变量和成员变量的写法是一样的,只是调用static还可以直接用类名来调用(在C#里甚至不允许这么写,就是为了让程序员明确static是属于类的,而不是实例的)。
但是,虽然可以这么用,但不推荐这么用,调用static变量应该明确写上类名,是为了提醒自己,这个属性是属于类而不是实例的,它由所有实例共有。
电商运营的机会
2017-06-08 · 知道合伙人互联网行家
电商运营的机会
知道合伙人互联网行家
采纳数:436 获赞数:998
潭州教育网络科技有限公司最佳电商运营总监。

向TA提问 私信TA
展开全部
调用成员变量的代码:
public class TestMain {
int i=50;
public void call(){

System.out.println("调用Call方法 ");
for(i=0;i<3;i++){
System.out.print(i+" ");
if(i==2){
System.out.println("");
}
}
}
public TestMain(){

}

public static void main(String[] args) { // 定义主方法
TestMain t1=new TestMain();
TestMain t2=new TestMain();
t2.i=60;
System.out.println("第一个实例对象调用变量i的结果:"+t1.i++);
t1.call();
System.out.println("第二个实例对象调用变量i的结果::"+t2.i);
t2.call();
}
}

输出结果:
第一个实例对象调用变量i的结果:50
调用Call方法
0 1 2
第二个实例对象调用变量i的结果::60
调用Call方法
0 1 2

但是把局部变量i定义为静态时(static int i=50)输出结果为:
第一个实例对象调用变量i的结果:60
调用Call方法
0 1 2
第二个实例对象调用变量i的结果::3
调用Call方法
0 1 2
为什么第二个实例对象调用变量i的结果为3
-----解决方案--------------------
因为在for循环执行完后,i的值变成3了,所以第二个对象调用变量i,输出的结果为3.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式