初学者,希望有人能够讲解一下这道编程题。
初学者,希望有人能够讲解一下这道编程题。
结论:你这个问题sum=-100出在成员变量作用域上。
问题分析:B类中定义了两个成员变量x和y,并赋予初始值为100和200。同时定义了三个成员方法
1、setX方法中x=x由于前面的x没有使用this,x在方法体内为局部变量,仅在该方法内有效。调用该方法不会修改B类中x的值,x为100
2、setY方法中this.y=y,this.y为B类中成员变量,不属于方法内局部变量,通过调用该方法赋值会改变B类中y的值
3、getXY方法中return x+y由于没有使用this,都作为局部变量,方法内没有对局部变量赋初值,使用B类中成员变量x和y的值。
4、总结:b.setX(-100) 后x=100;b.setY(-200)后 y=-200;b.getXY()后 100+(-200)=-100