this —-出现在类的实例方法、初始化代码块、构造方法中,用来代表使用该方法的当前对象的引用。
用this作为前缀,访问当前对象的属性或方法。
1)使用this可以区分当前作用域中同名的不同变量。
private int x, y; // 属性
public Point(int x, int y) { //构造方法
this.x = x;
this.y = y;
}
2)把当前对象引用作为参数传递给另一个方法。
如: p.distance(this);
3)一个构造方法中调用同类的另一个构造方法。
public Point() { this(0,0); }
public class Point {
private int x, y;
public Point(int x, int y) {
this.x = x; this.y = y;
}
public Point() {
this(0,0);
}
public double distance(Point p) {
return Math.sqrt((this.x-p.x)* (x-p.x) + (y-p.y)*(y-p.y));
}
/*以下两个方法在利用上面方法求距离(演示概念)*/
public double distance2(Point p) {
return p.distance(this); //p到当前点的距离
}
public double distance3(Point p) {
return this.distance(p); //调用当前对象另一方法
……
}
}