Encapsulation (GET, SET) Java oop part 5
الكاتب: Mr.Aziz
تاريخ النشر: 2022-04-10 00:42:50
مساء الخير
اليوم راح نتكلم جزء مهم في oop الى هو أغلبكم شافها او سمع عنها هي get و set و ليش اصلآ لازم نسويها و ايش السبب
أول شي هذي تسمى Encapsulation تعني يتم أخفاء البيانات الحساسة أو على اقل تخزينها.
بهذي طريقة نقدر نتعامل مع المتغيرات عن طريق get و set لانه بيكون public عكس المتغيرات تكون محفوظة كا private تمام.
اذا شفت الدرس السابق عن private بأمكانك تفهم الباقي واذا ماشفته أنصحك ترجع و تشوف درس عن private او تفضل من هنا
طيب ماهو وظيفة GET و SET
Set: يتم استقبال القيم من المتغيرات
get: يتم عمل RETURN القيمة الي مخزن بها من قبل المتغيرات.
الان راح اشرح لكم
تتذكرون الدرس السابق قدرنا نعمل method و استعرضنا كيف يتم الطباعة ولكن هالمره في method
طيب انا ابي اطبع في main أو اي مكان ثاني بشرط مايكون موجود بالكلاس هل ينفع؟ نجرب
زي ماتلاحظون لما عملنا obj.info() و داخلها قيمة هنا تقبل لامشكلة
ولكن لما عملنا print
system.out.print(obj.info()( هنا ماينفع ليش؟
لانه لازم الميثود يكون له return و احنا عارفين هذا النوع لازم يكون نوع ميثود int مو void
هنا الفكرة set نفس الشئ.
خلونا نعمل Set ثم get تمام
أول شي نعمل method يكون SetNumber()
مثل هكذا
زي ماتلاحظون هنا كتبت method يكون نوعه void ثم كتبت اسم الmethod هو setnumber
و parameter يكون متغير الى يستقبله عن طريق المتغير متواجد في private الى هو num تمام؟
نكمل
ألان كتبنا المتغير الي متواجد في private أولآ ثم المتغير التي كان في parameters
num = mynumber
لسبب وضعنا هكذا لانه نحتاج نستدعي القيمة عن طريق mynumber ليش؟
لاننا بنستخدم parameter وليس اسم متغير
طيب أفرض لو نبي نستخدم اسم متغير ايش بيطلع لنا؟
هنا نتيجة
زي ماتلاحظون هنا مستحيل نقدر نستخدم المتغير خارج الكلاس لانه لازم يكون عن طريق method مهم ماكان
المهم نكمل
في main نكتب بهذي طريقة
obj.SetNumber(25)
نضع اسم obj التي تم انشاءه من قبلنا ثم نضع اسم الدالة set ثم نضع القيمة التي نريد نحفظها في المتغير داخل الكلاس
مثل ماأستعرضنا مره السابقة
طيب لو أبي اطبع على طول وش بيطلع لي
تعالو نشوف
زي ماتلاحظون لما حاولت اطبع الى موجود سواء بأسم الدالة او اسم المتغير يرفض ليش؟
زي ماتعلمنا في درس الدوال function لاتستطيع طباعة اسم الدالة الا في حال وجود نوع متغير غير void
هنا يجي دور get وينقذنا :)
نروح نسوي دالة ثانيه ولكن هالمره كذا
زي ماكتبنا اسم الدالة ولكن هالمره مانحتاج parameters
فقط نعمل retun
public int GetNumber(){
return num;
}
int: لازم يكون مطابق النوع المتغير الي في setnumber
return num: يتم استدعاء القيمة التي تم تخزينها و هنا نستطيع استعراضها في main او اي دوال اخرى
نجي الان الطباعة بهذي طريقة
نجي تحت في main ثم نعمل الطباعة ونستدعي فقط اسم obj ثم اسم دالة get
obj.GetNumber() و هنا يتم عرض القيمة بدون اي مشكلة
انا وضعت رقم في num بحيث نعمل اختبار لها و الحمدالله تم طباعتها
الان خلونا نسوي set مع get تحت يكون يستقبل القيمة ثم يتم طباعة القيمة
هنا نكتب فقط obj.setNumber(4)
كذا نقدر نضع اي قيمة و يستقبلها في الدالة و بعد كذا يتم استقبالها num التي متواجد في private و بعد كذا نستطيع نعمل return لها ليتم عرض القيمة باي مكان خارج الكلاس
هذي طريقة get و set بكل بساطة..
اذا ماوصلت المعلومة حاول تطبيق الدرس وفهمها جيدآ خاصة private الدرس السابق مع هذا الدرس لانه مرتبط جدآ مع بعض
ولاتنسى أهم شي الممارسة عشان توصل المعلومة وتكون مفهومة
للعلم set لايجب ان يكون مكانها في main و ممكن يكون بأي مكان يستقبل المتغير ليتم عرضها عن طريق get
أشوفكم على خير...