this (this Keyword)
کلیدواژه «this» در جاوا، یعنی «این شیءِ فعلی». وقتی داخل متد یا سازنده هستیم، this یعنی همین شیء. این واژه، مخصوصاً هنگام هم نامیِ پارامتر و ویژگی، گیج نشدن را کمک می کند.
دسترسی به خصوصیات کلاس با this
گاهی پارامتر و «متغیر (Variable)» کلاس هم نام هستند. سپس پارامتر، ویژگی را پنهان می کند. برای اشاره به ویژگیِ کلاس، از this استفاده کن.
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.x = x; یعنی «ویژگیِ کلاس» مقدار «پارامتر» را بگیرد. اگر بنویسی x = x; مقدارِ ویژگی تغییر نمی کند.
فراخوانی یک سازنده از سازنده دیگر با this()
می توانی داخل یک سازنده، سازنده دیگر را صدا بزنی. این کار، تکرار کد را کم می کند و مقدارهای پیش فرض می دهد.
public class Main {
int modelYear;
String modelName;
public Main(String modelName) {
this(2020, modelName);
}
public Main(int modelYear, String modelName) {
this.modelYear = modelYear;
this.modelName = modelName;
}
public void printInfo() {
System.out.println(modelYear + " " + modelName);
}
public static void main(String[] args) {
Main car1 = new Main("Corvette");
Main car2 = new Main(1969, "Mustang");
car1.printInfo();
car2.printInfo();
}
}
نکته: فراخوانی this() باید «اولین دستور» داخل سازنده باشد.
گام های تمرینی
- کلاسی با ویژگی هم نام پارامتر بساز.
- در سازنده از
thisبرای انتساب درست استفاده کن. - یک سازنده دوم اضافه کن و با
this()صدا بزن. - شیء بساز و خروجی ها را بررسی کن.
نکته: درباره سازنده ها صفحه سازنده ها را ببین. همچنین برای آشنایی با خصوصیات، خصوصیات کلاس را مرور کن. اگر متدها لازم شد، متدهای کلاس کمک می کند.
جمع بندی سریع
thisیعنی شیء فعلی.- برای تفکیک ویژگی و پارامتر هم نام است.
this()سازنده دیگر را صدا می زند.this()باید اولین دستور باشد.