This的作用
代表了当前对象,只出现在方法中
-
区分同名变量和属性,用 this.属性名 代表成员变量 (如果省略this,那么按照就近原则,该属性指代方法内的局部变量或者形参)
-
在方法中可以使用 this.方法名 调用成员方法,但可以省略
-
在构造方法的第一行,可以使用 this() 调用重载的构造方法
public class Course_exercise_point { int x; int y; int z; public Course_exercise_point(){ } public Course_exercise_point(int x){ this.x = x; } public Course_exercise_point(int x,int y,int z){ this(x); // 3 用this(x)去调用只有一个参数x的构造方法 this.y = y; // 1 this.z = z; // 1 } public static void main(String[] args) { Course_exercise_point a1 = new Course_exercise_point(1,2,3); Course_exercise_point b1 = new Course_exercise_point(4,5,6); System.out.println(a1.getDistanceFromOriginal()); System.out.println(a1.getDistanceFromOther(b1)); } public int getDistanceFromOriginal() { // 距离原点 this.sayHello(); // 2 this可去掉 return x*x+y*y+z*z; } public int getDistanceFromOther(Course_exercise_point poi){ // 距离另外一个点 return (this.x-poi.x)*(this.x-poi.x)+(this.y-poi.y)*(this.y-poi.y)+(this.z-poi.z)*(this.z-poi.z); } public void sayHello(){ System.out.println("hello"); } } /* 运行结果: hello 14 27 */
-
返回对象 return this
对于**return this **可能是由于根据需求需要将当前的这个对象作为返回值,以便接收,并且这个非静态方法的返回值类型据我所知只能为三种情况:父类,当前类,实现的接口。