这个java程序怎么执行的,求解答。

publicclassB{intx=100,y=200;publicvoidsetX(intx){x=x;}publicvoidsetY(inty){y=y;}publi... public class B {
int x=100,y=200;
public void setX(int x) {
x=x;
}
public void setY(int y) {
y=y;
}
public int getXYSum() {
return x+y;
}}
public class A {
public static void main (String args[])
{
B b=new B();
b.setX(-100);
b.setY(-200);
System.out.println("sum="+b.getXYSum() );
}}
展开
 我来答
百度网友0adf2dfc62
推荐于2016-08-23 · TA获得超过578个赞
知道小有建树答主
回答量:553
采纳率:50%
帮助的人:211万
展开全部
按你写的代码来说执行结果是300,因为你的setX和setY方法里的x,y都是参数,而getXYSum里的x,y是成员变量,所以在main方法里的setX(-100)和setY(-200)并没有改变B中的成员变量的值,所以运行结果是300,如果你将setX和setY方法分别改成 this.x = x; this.y=y;那么运行结果就是-300了。
更多追问追答
追问
this.x=x;是什么意思,是参数的值赋给成员变量,吧成员变量的值改变了吗
追答
对 如果方法中定义了与成员变量同名的局部变量,就必须使用this来明确指向成员变量,如果方法中没有定义与成员变量同名的局部变量,那么this可省略
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式