+2 امتیاز
قبل در برنامه نویسی توسط (467 امتیاز)
ویرایش شده قبل توسط

سلام. لطفا به کد زیر دقت کنید:

class That {
	String name = "A";
	public static void test(Main name) {
		System.out.println(name.name);
	}
}

public class Main {
	String name = "B";
	public void test(String name) {
		this.name = name;
		That.test(this);
	}

	public static void main(String[] args) {
		new Main().test("C");
	}

}

لطف کنید در مورد this توضیح بدین. منظور از شی جاری دقیقا چیه؟

ممنون میشم اگر راهنماییم کنید.

2 پاسخ

+2 امتیاز
قبل توسط (1.1هزار امتیاز)

ما کلاس را بعنوان یک قالب و دستور العمل تعریف می کنیم که مشخص می کند وقتی می خواهیم یک شئ بسازیم باید چه اتفاق هایی بیوفتد و آن شئ چه ساختاری خواهد داست. حالا در زمان تعریف کلاس اگر بخواهیم به شئی که قرار است در آینده ساخته شود دسترسی داشته باشیم، می توانیم با کلمه کلیدی this این کار را انجام دهیم.

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

سوال شده 8 سال قبل در برنامه نویسی توسط (467 امتیاز)
ویرایش شده 8 سال قبل توسط
در جاوا منظور از شی جاری چیست که توسط this ارسال می‌شود؟
+1 امتیاز
قبل توسط (80 امتیاز)
ویرایش شده قبل توسط

کاربردی کلمه this  در جاوا در 3 مورد هستش:

  1. وقتی 2 تا فیلد و یا متد داریم که نامشان مثل هم باشد ولی یکی در heap و یکی در stack باشد از کلمه this استفاده می کنیم مثل: this.field; supper.this();
  2. در سازنده  ها (constractor) وقتی بخواهیم که ابتدا سازنده بالایی ابتدا اجرا شود و بعد متدها و یا فیلد های این سازنده اجرا شود با استفاده از کلمه ()this;  در اولین سطر از constractor .
  3. در outer class ها . به کد زیر توجه کنید:
public class Woman extends Human {

    private int x;

    class Baby extends Human { // Inner class

        @Override
        void talk() {
            System.out.println("Baby is Crying...");
            x = 12;
           // this ---> اشاره می کند به baby
        }

//woman.this------> اشاره می کند به woman

    }

توضیحات بیشتر

سوالات مشابه

0 امتیاز
2 پاسخ 940 بازدید
0 امتیاز
1 پاسخ 739 بازدید
0 امتیاز
0 پاسخ 909 بازدید
+1 امتیاز
1 پاسخ 446 بازدید
+1 امتیاز
1 پاسخ 538 بازدید
+1 امتیاز
1 پاسخ 828 بازدید
...