java 高手请帮帮忙~~~我是新手~谢谢啦~~

来源:百度知道 编辑:UC知道 时间:2024/09/20 07:32:52
class Example4_14
{ private int money;
Example4_14()
{ money=2000;
}
private int getMoney()
{ return money;
}
public static void main(String args[])
{ Example4_14 exa=new Example4_14();
exa.money=3000;
int m=exa.getMoney();
System.out.println("money="+m);
}
}

为什么money是3000而不是3000呢??
谢谢你们~~

程序改成下面这样
对比一下
可以帮助你理解

class Example4_14
{ private int money;
Example4_14()
{ money=2000;
}
private int getMoney()
{ return money;
}
public static void main(String args[])
{
Example4_14 exa=new Example4_14(); //new了一个Example4_14的对象 exa
int n=exa.getMoney(); // 调用方法getmoney() 获得其值 并且赋值给n 这里用的是无参数的构造函数 即money在未给定值的时候是2000
System.out.println("money="+n); //输出n的值
exa.money=3000; //将对象exa的属性money赋值为3000
int m=exa.getMoney(); //赋值给m
System.out.println("money="+m); 输出m
}
}

输出3000 而不是2000:帮你分析一下:
看代码;

money=2000;

这时候,把2000 赋值给money 。
private int getMoney()
{ return money;
}
这个方法,是返回moeny中的值。

exa.money=3000;此时,把3000值赋给money,money此时已不再是2000 而是3000 了。

int m=exa.getMoney();
调用getMoney的方法,得到money中的值 3000 ,并传给m,

System.out.println("money="+m);
输出m。结果