Java的问题,求详解~

2024-12-16 15:29:53
推荐回答(5个)
回答1:

选C
public void setX(int x) {
x = x;
}
这里变量就近取值,a.setX(-100);之后相当于-100=-100,没有对类A自己的x值产生影响。
public void setY(int y) {
this.y = y;
}
这里是将输入的y值赋值给类A自己的y值,a.setY(-200);之后相当于200=-200,类A本身的y=200被重新赋值了。
public int getXYSum(){
return x+y;
}
这里没有给这个方法传入值,默认调用本类的值,相当于this.x+this.y。

回答2:

A:
public int getXYSum(){
return x+y;
} 这里调用的是A.x+A.y的和;
创建完A对象之后,你设置了x=-100,Y=-200,那么结果-300;
至于定义的int x=100,y=200;属于初始值,调用set方法就把他们覆盖了;

回答3:

class A的setX中 x=x 没有对A的属性x赋值,而是对你传入的x进行的赋值,因此
main中赋值后a.x=100 a.y=-200,所以结果是100 + (-200) = -100 选C

注释:set方法写成这样更容易理解
public void setX(int a) {
a = a;
}

public void setY(int b) {
y = a;
}

回答4:

C.因为setY中的y加了this,所以它能够改变class A中的y值。而由于setX中的x没有加上this关键字,所以它只是代表参数int x中的x

回答5:

D

这个答案