1.this是该(非static)方法的隐藏参数,是当前实例对象的引用。注:编译器在编译(非static)方法时为我们偷偷加上的。
简单地说在static方法中因为没有传入的隐藏参数this所以不能用。例子如下:
public class Point
{
int x; int y;
public Point(/*Point this*/ int x, int y)
{
this.x=x; this.y=y;
}
/** 当前点(this)到另外点(other)的距离 */
public double distance( /*Point this*/ Point other)
{
int a = this.x-other.x; int b=this.y-other.y;
return Math.Sqrt(a*a+b*b);
}
/** 计算p1和p2之间的距离 */
public static double distance(Point p1, Point p2)
{
int a=p1.x-p2.x; int b=p1.y-p2.y;
return Math.Sqrt(a*a+b*b);
}
}
|