this
می خواهیم «کلیدواژه this در جاوا» را ساده ببینیم. «کلیدواژه (Keyword)» یعنی واژه ای که به کامپایلر فرمان می دهد. this یعنی «همین شیء جاری (Current Object)». یعنی داخل کلاس، به خودش اشاره می کند.
this چیست و چرا مهم است؟
طبق منبع، this داخل «متد (Method)» یا «سازنده (Constructor)» به شیء جاری اشاره می کند. بنابراین گیجی بین «ویژگی کلاس (Attribute)» و «پارامتر همنام» را برطرف می کند. اگر this را حذف کنی، مقدار اشتباه می شود.
نمونه کد: رفع تداخل نام با this
در این مثال، پارامتر و ویژگی هردو x هستند. با this.x دقیق مشخص می کنیم.
public class Main {
int x;
public Main(int x) {
this.x = x;
}
public static void main(String[] args) {
Main myObj = new Main(5);
System.out.println("Value of x = " + myObj.x);
}
}
کِی از this استفاده کنم؟
- وقتی نام پارامتر و ویژگی یکی است.
- برای فراخوانی سازنده جاری با this(...).
- برای ارجاع به متدهای همین شیء.
- برای برگرداندن همین شیء از متد.
- برای ارسال همین شیء به متد یا سازنده.
نکته: «سایه انداختن (Shadowing)» یعنی پارامتر همنام، روی ویژگی را می پوشاند. this مشکل را حل می کند.
کلیدواژه this را به عنوان مرجع سریع نگه دار.
آشنایی با کلاس ها و اشیاء را بخوان تا مفهوم شیء روشن شود.
سازنده ها در جاوا را مرور کن تا this در سازنده را ببینی.
جمع بندی سریع
- this یعنی شیء جاری.
- سایه انداختن نام ها را حل می کند.
- در متد و سازنده کاربرد دارد.
- می تواند سازنده جاری را صدا بزند.