3.3.2、使用this关键字

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。

使用this关键字

在实例方法或者构造器中,this是指向当前对象(方法或者构造器被调用的对象) 的引用。在对象方法或构造器中使用this可以访问对象中的任何成员。

和字段一起使用this

常见使用this关键字的一个原因是方法或者构造器的参数是某个字段的影子字段。

比如,Point类这样来写:

public class Point{
	public int x = 0;
	public int y = 0;
	
	public Point(int a,int b){
		x = a;
		y = b;
	}
}

也可以写成这样

public class Point{
	public int x = 0;
	public int y = 0;
	
	public Point(int x,int y){
		this.x = x;
		this.y = y;
	}
}

每一个构造器参数都是对象字段的一个影子字段 - 在构造器内部x是构造器第一个参数的一个本地拷贝,为了引用Point对象的字段x,构造器必须使用this.x。

和构造器一起使用this

在构造器中,你也可以使用this关键字来调用类中的其他构造器。这样做被称为显示的构造器调用。下面是另外一个Rectangle 类,

public class Rectangle{
	private int x,y;
	private int width,height;
	
	public Rectangle(){
		this(0,0,1,1);
	}
	
	public Rectangle(int width,int height){
		this(0,0,width,height);
	}
	
	public Rectangle(int x,int y,int width,int height){
		this.x = x;
		this.y = y;
		this.width = width;
		this.height = height;
	}
	···
}

该类有一批构造器。每个构造器都要初始化矩形类成员中的一部分或者全部字段。构造器为每个成员提供了默认值,但这些成员的初始值不是由构造器提供的。比如,无参构造器创建原点为(0,0),1*1的矩形。两个参数的构造器调用四参构造器,传递width和height,但仍然使用原点(0,0)。如前文所述,编译器将决定调用哪个构造器,基于参数的数目和类型。

如果存在对构造器的显示调用,必须位于其他构造器的第一行代码中。

你可能感兴趣的:(JDK1.8官方文档翻译)