结论:你这个问题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
setX()里面没使用this.x,对象b的x还是100。
这道编程题的sum=-100的原因可能是由于程序中的某些变量值或计算方式不正确导致的。具体原因需要看代码才能确定。
以下是一些可能导致sum=-100的情况:
例如,以下代码中,变量i的初值为1,但是在循环中被重置为了0,导致sum的值不正确。
int i = 1;
int sum = 0;
while (i <= 100) {
sum += i;
i = 0;
}
例如,以下代码中,累加过程中,将i的平方值减去了2,导致sum的值不正确。
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i * i - 2;
}
例如,以下代码中,循环条件中出现了i < 0的判断条件,导致循环不会执行,sum的值仍为初始值-100。
int i = 1;
int sum = -100;
while (i < 0) {
sum += i;
i++;
}
因此,需要结合具体的代码来分析sum=-100的原因,并进行修正。