AceofHert 2016-07-28 14:53 采纳率: 78.6%
浏览 1108

为什么i变成静态成员变量输出结果会是这样

public class Trans{
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 Trans(){
}
public static void main(String[] args){
Trasns t1=new Trans();
Trasns t2=new Trans();
t2.i=60;
System.out.println("第一个实例对象调用变量i结果:"+t1.i++);
t1.call();
System.out.println("第二个实例对象调用变量i结果:"+t2.i);
t2.call();
}
}

输出结果:
第一个实例对象调用变量i结果:47
调用call()方法
0 1 2

第二个实例对象调用变量i结果:60
调用call()方法
0 1 2

public class Trans{
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 Trans(){
}
public static void main(String[] args){
Trasns t1=new Trans();
Trasns t2=new Trans();
t2.i=60;
System.out.println("第一个实例对象调用变量i结果:"+t1.i++);
t1.call();
System.out.println("第二个实例对象调用变量i结果:"+t2.i);
t2.call();
}
}

输出结果:
第一个实例对象调用变量i结果:60
调用call()方法
0 1 2

第二个实例对象调用变量i结果:3
调用call()方法
0 1 2

  • 写回答

4条回答 默认 最新

  • threenewbee 2016-07-28 14:55
    关注

    更改静态变量,所有对象实例都有影响。更改成员变量,只有当前成员实例有影响。
    静态变量相当于全局变量,一个程序就有一个,成员变量则是有几个实例,就有几个拷贝,互不干扰。

    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?