这个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() );
}} 展开
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() );
}} 展开
1个回答
展开全部
按你写的代码来说执行结果是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可省略
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |