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)を使用しています.前述のように、コンパイラはどのコンストラクタを呼び出すかを決定し、パラメータの数と種類に基づいています.
コンストラクタの表示呼び出しがある場合は、他のコンストラクタの最初の行のコードに配置しなければなりません.