我在努力得分,但都得不到,所以大家帮帮忙了呀
class Point
{
int x,y;
Point(int a,int b)
{
x=a;
y=b;
}
void output()
{
System.out.println(x);//为什么这里输出不是这里的 void output(int x,int y)
System.out.println(y); //x,y,虽然不是成员变量的X,Y,但此时的XP已经是5,5了呀
}
void output(int x,int y)
{
x=x,
y=y;
}
public static void main(String[] args)
{
Point pt;
pt=new Point(3,3);
pt.output(5,5);
pt.output();
}
}
class Point
{
int x,y;
Point(int a,int b)
{
x=a;
y=b;
}
void output()
{
System.out.println(x);//为什么这里输出不是这里的 void output(int x,int y)
System.out.println(y); //x,y,虽然不是成员变量的X,Y,但此时的XP已经是5,5了呀
}
void output(int x,int y)
{
x=x,
y=y;
}
public static void main(String[] args)
{
Point pt;
pt=new Point(3,3);
pt.output(5,5);
pt.output();
}
}
System是一个类,out是System类的一个静态属性,println是out对象的一个方法。和你自己写的output有什么关系呢。
调用pt.output(5,5);这个函数的时候形参的X,Y都是5了呀
所以调用pt.output();的时候X,Y就应该是55了呀为什么输出的是成员变量33呢
{
x=x,
y=y;
}方法体里的x哪个是形参,哪个是类的域你分得清吗?
this.x=x;
this.y=y;
要么把形参名改一下,里面两个x两个y你说怎么可能对,域的x和y没有处理过
你再输出x,y系统将会报错..x,y的参数作用于只能在函数块里,函数结束,变量被释放.
int x;
int y;
Point(){}
Point(int a, int b) {
x= a;
y = b;
} void output() {
System.out.println(x);
System.out.println(y);
} void output(int x, int y) {
this.x = x;
this.y = y ;
} public static void main(String[] args) {
Point pt;
pt = new Point(3, 3);
pt.output(5, 5);
pt.output();
}
Point(int a, int b) {
x= a;
y = b;
}那么它就调用这个函数
所以x,y就是3,3
而你调用的是无参的函数,那么它就根据参数只调用这个,不会调用其它的函数
不过你的代码没问题,我的编译器是5,5
我也是个初学者,希望大家指点
我想是应该明白了
void output(int x,int y)
{
x=x,
y=y;
}
这个应该作用域这在空上块内,一结束就释放了是吗????
你两个都是x根本没区分形参跟你的域么,不是让你加个thi.x=x吗跟作用域没关系