الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ما معنى this ومتى استعملها

بدأه khalfallah في 17 سبتمبر 2010 · 7 رد · 1,056 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله وبركاته

اخواني من كانت لديه الاجابة فاليتفضل سؤالي

ما معنى this ومتى استعملها وان كان بمثال

والف شكر لكم .

#2

this

معناها الطبيعى او فاللغه " هذا "

يعنى بتشير الى

1- المتغير الموجود فى الـ class

2- يشير الى class

3- يشير الى object from class

هذه هى الاستخدامات المشهوره اوى للـthis

استخدمها امتى

1- لم اكون عاوز اشير الى الـ class اللى انا واقف فيها

يعنى ايه بردوا

يعنى اشير الى كل متغير او كل داله موجوده داخل الـ class

2- لم اكون بعمل داله بتاخد قيمه وتخزنها فى متغير داخل الكلاس

زى مثال الـ setter

بدال ما اعمل كدا

int num;

public void setNum(int number){
num = number;
}

لالا فى الجافا وفى معظم اللغات انى استخدم نفس الparameters الموجوده بين اقواس الداله

بنفس اسماء المتغيرات الموجوده عندى

ازاى

ان المتغير الاصلى بتاعى اشير اليه بـ this.variableName

ويكون عندى الـ paramters بتاعى اسمه variableName

وبكدا يكونوا مختلفين

تعالوا نطبق على المثال السابق

int num;

public void setNum(int num){
num = num;
}

لو عملت الكود دا الكومبيلر هيقولك غلط انك بتحط المتغير ف نفسه

لكن انا هاصلحه واقوله

int num;

public void setNum(int num){
this.num = num;
}

كدا انا قولت له ان المتغير بتاعى اللى اسمه num اللى هى بتتعمل بـ this.num

هتحط فيه القيمه اللى انت واخدها اللى اسمها num

اتمنى ان اكون افدت ولو بالقليل

بالتوفيق

سلام عليكم

Software Developer
Mahmoudkelany.com


 

#3

هى بتشير للكائن الحالي ومنها بتقدر توصل لل instance variables/methods

2
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#4

مشكوريين على الردود راح اجرب

#5

this تستعمل أيضا للمناداة على أحد ال constructors إذا كان لديك عدة constructors

public class Test {

	private int a, b, c;

	public Test(int aa, int bb, int cc) {
		a = aa;
		b = bb;
		c = cc;
	}

	public Test(int aa, int bb) {
		this(aa, bb, 10);
	}
}
1
#6
herch كتب:

this تستعمل أيضا للمناداة على أحد ال constructors إذا كان لديك عدة constructors

public class Test {

	private int a, b, c;

	public Test(int aa, int bb, int cc) {
		a = aa;
		b = bb;
		c = cc;
	}

	public Test(int aa, int bb) {
		this(aa, bb, 10);
	}
}

+1

انت دايما للحاجات اللى بنغفل عنها

تسلم ايدك :)

Software Developer
Mahmoudkelany.com


 

#7
herch كتب:

this تستعمل أيضا للمناداة على أحد ال constructors إذا كان لديك عدة constructors

public class Test {

	private int a, b, c;

	public Test(int aa, int bb, int cc) {
		a = aa;
		b = bb;
		c = cc;
	}

	public Test(int aa, int bb) {
		this(aa, bb, 10);
	}
}

طيب أخي معلش ممكن تشرح المثال بشكل آخر او مثلا نفس المثال تبين الفرق بدون استخدام this

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#8

الطريقة الوحيدة للمناداة على constructor آخر في نفس الكلاس هو باستعمال this. لاتوجد طريقة أخرى بدون استعمال this حسب علمي

عدم استعمال this يعني عدم المناداة على ال constructor الآخر، أي تكرار نفس الكود، وهذا ما نريد تجنبه

public class Test {

        private int a, b, c;

        public Test(int aa, int bb, int cc) {
                a = aa;
                b = bb;
                c = cc;
        }

        public Test(int aa, int bb) {
                a = aa;
                b = bb;
                c = 10;
        }
}

مواضيع مشابهة