java的参数问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 06:49:56
public class point
{
int x, y;
point(int a,int b)
{
x=a;
y=b;
}
point()
{
}
void output()
{
System.out.println(x);
System.out.println(y);
}

void output(int x ,int y)
{
x=x;
y=y;

}
public static void main(String[] args)
{
point pt = new point(3,3);
pt.output(5,5);
pt.output();
}
}

上面是个很简单的例子,他的执行结果是:3
3

我想问:为什么形参X,Y的值没有赋给成员变量X,Y,而是将成员变量设置为不可见呢?
构造方法point的形参a,b可以对X,Y赋值,请问这个问题出在哪里啊?
我想知道形参X,Y的值不能赋给成员变量X,Y,而是构造方法的形参A,B 可以对X,Y赋值,他们2个都是形参,为什么一个可以赋一个不可以?

改成
void output(int x ,int y)
{
this.x=x; //this区分同名的形参与成员.
this.y=y;
}

void output(int x ,int y)
{
x=x; //两个x都是point类的成员,不是型参,是把x自己的值赋给自 己.
y=y; //同上
}

void output(int x ,int y)
{
x=x;
y=y;
}
这个方法里的x,y应该系统默认就是形参,而非成员变量的x,y
你可以把上面的方法里改成
void output(int k ,int s)
{
x=k;
y=s;
}
再试试~