ارجوا ممن شرح this

Zzz1234

اريد شرح كلمة this في الجافا وماهي القيمة التي سيأخذها

مثل

X=3

Y=6

Void set y(int y

this y=y

y=this.y .

ماالفرق بين الجملتين لم اكتب الكود بشكل صحيح فقط لتوضيح ارجو الرد وشكرا

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

this.y = y

في هذه الحالة، أنتِ تقومين بتعيين قيمة y (التي كانت تساوي 6) إلى قيمة الy المدخلة (int y التي بداخل الmethod).

أما في الحالة الثانية،

y = this.y

فإن هذا التعيين لا فائدة منه ما لم تقومي باستخدام y في داخل الmethod؛ حيث أن y مجرد متغير محلي وسوف يختفي بمجرد أن ينتهي تنفيذ الmethod.

انصحك بمشاهدة فيديوهات الاستاذ عبدالله عيد دورة Java 101 الدروس 32 و 33 و 34

باختصار شديد لو أن لديك متغير public اسمه var و لديك مثود تحتوي على متغير اخر local اسمه أيضاً var

لن تستطيع الوصول للمتغير العام من داخل المثود بالطريقة التقليدية ببساطة لأن جافا تعطي الأولية للمتغير المحلي على العام و بالتالي حتى نصل للمتغير العام نسخدم عبارة this

مثال للتوضيح

تخيلي معي

عندك كلاس

عرفتي بعده

public int x ; //attri

ثم عندك ميثود بعدها بغض النظر عن نوعها ايش ترجع او ايش تاخذ حلو؟

الميثود هذي مكتوب فيها

this.x = 5; //decl

معناتها انه اسند قيمه للاكس حقت الكلاس الي فيه الميثود فهمتي؟ يعني لو جت ميثود ثانيه واستخدمت الاكس الي فوق راح تكون قيمتها 5

طيب لو هالميثود كتبت كذا

int x = 4

هنا عرف قيمة اكس وهالميثود تشوف هالاكس على انها متغير نفسه نفس غيره مسنود له قيمة -مايشوفها- على انها الاكس الي فوق ولا يمكن اي ميثود يستخدم هالاكس (x=4) الا بهالميثود فقققققققط

مثال : عرفتي اكس تحت الكلاس من دون قيمة وعندك ميثودين الميثود الاولى مكتوب فيها ذيس اكس = 5

والميثود الثانية مكتوب فيه this.x= this.x + 5 ??? طيب ايش هي الاكس في هالميثود؟ بيرجع للاكس الي فوق بالكلاس وبيشوف انها تساوي خمسه(لاننا اسندنا لها في الميثود الاولى ) وبيطلع ان this.x = 10

وصل اللهم وبارك :)

المعذرة , فهمت المعلومة بطريقة مغلوطة واحمل نفسي مسؤولية ذلك, ليست كما كنت اظن,ولا استطيع التعديل على ماكتبت ولكن المهم ان الفكرة ليست كما كتبت.

لم ارى رد Walood

جزاه الله خيرًا فصل وافهم بطريقة رائعة + قصيرة