public class MethodTest {
private int x;
private int y;
MethodTest () {}
MethodTest(int a, int b){
x=a;
y=b; //这两行为什么不可以直接用 x=a; y=b; 用的话编译会通过,但运行时发现都是0
}
private void setXY(int a, int b) {
x=a;
y=b; //为什么这里可以直接写x=a; y=b;且运行不会出错?
} public int getX(){
return x;
}
public int getY(){
return y;
}
public static void main (String args[]) {
//.........后面省略
MethodTest t=new MethodTest(2,3);
System.out.println (t.getX());
System.out.println (t.getY());
}
}
没问题吧,输出2和3
private int x;
private int y;
MethodTest () {}
MethodTest(int a, int b){
x=a;
y=b; //这两行为什么不可以直接用 x=a; y=b; 用的话编译会通过,但运行时发现都是0
}
private void setXY(int a, int b) {
x=a;
y=b; //为什么这里可以直接写x=a; y=b;且运行不会出错?
} public int getX(){
return x;
}
public int getY(){
return y;
}
public static void main (String args[]) {
//.........后面省略
MethodTest t=new MethodTest(2,3);
System.out.println (t.getX());
System.out.println (t.getY());
}
}
没问题吧,输出2和3
this.x=a;
this.y=b;
}
的使用一般是在这种情况下:
MethodTest(int x, int y){
this.x=x;
this.y=y;
}
就是为了区分函数内的变量和class内的变量。所以说,你提到的问题,应该是不会发生的。
y=b;
这么写不会有错啊