اشاره گر this در جاوا چیست و کاربرد آن چیست

 

در واقع this یک اشاره گر به آبجکتی از کلاس جاری می باشد.

زمانی که بخواهیم متغییری در کلاس را اشاره کنیم می توانیم با this این کار را انجام دهیم.

همچنین با استفاده از this می توانیم کانستراکتور همان کلاس را فراخوانی کنیم.

برای اینکه واضح تر به ادامه توضیحات ادامه بدیم یک مثال میزنیم

 

public class Example_1 {
	public Example_1(){
		this(10);
	}
	public Example_1(int i){
		this(i,++i);
	}
	public Example_1(int i, int j){
		System.out.println("i : "+i + " j : "+j);
	}
	public static void main(String[] args){
		Example_1 t = new Example_1(); // or new Test();
	}
}

 

در اینجا با استفاده از this() می توانیم سازنده های موجود در کلاس را فراخوانی کنیم و اگر سازنده ایی دارای پارامتر باشد برای this آن پارامتر ها را مقدار دهی می کنیم تا به سازنده مورد نظر اشاره کند.

در ادامه مطلب مثالی از this برای اشاره به یک متغییر ارائه می دهیم...

 

public class Example_2 {
	int i;
	public Example_2(int i){
		this.i = i;
		System.out.println(this.i);
	}
	public static void main(String[] args){
		Example_2 t = new Example_2(10);
		
	}
}

 

 

در این کلاس یک متغییر سراسری به نام i وجود دارد و سازنده ایی با پارامتری هم نام و هم نوع  با متغییر کلاس وجود دارد.

از متغییر سراسری در سازنده به صورت مستقیم نمی توان استفاده کرد چون هم نام با پارامتر سازنده می باشد و کامپایلر به متغییر محلی اولویت را می دهد. برای استفاده از i در سازنده باید از اشاره گر this استفاده کرد. دستور زیر را در سازنده قرار داده ایم

 

this.i = i;

 

معنی این عبارت این است که مقدار پارامتر i را در متغییر i قرار بده که منطقا برای اینکه انتساب درست انجام گیرد باید پارامتر و متغییر هم نوع باشد که در این مثال از نوع صحیح هستند.در واقع با زبان ساده اگر بگوییم به کامپایلر می فهمانیم که منظور ما از i متغییر کلاس می باشد.

در متد main کلاس، نمونه از کلاس ایجاد کردیم که در هنگام new آبجکت مقدار 10 را به پارامتر سازنده فرستادیم و عمل انتساب و چاپ را انجام دادیم.موفق باشید 

 

می توانید انتشار قسمت ها جدید آموزش برنامه نویسی و به روز رسانی های جدید سایت را از کانال تلگرام ما دنبال کنید  و یا از قسمت انتهایی سایت ، آدرس it3du را در سایر شبکه های اجتماعی پیدا کنید

 

 

منبع: it3du.ir