درس عن oop: ماهو الفرق بين public و private
الكاتب: Mr.Aziz
تاريخ النشر: 2023-03-14 05:06:19
مساء الخير
اليوم راح اشرح لكم ثلاث أنواع تكون موجوده في الكلاس بشكل عام.
أفتراضيآ يصبح private اذا لم تضع كلمة public في الكلاس تمام
في ثلاث أنواع
1- public: بأمكانك استدعاء المتغيرات أو الدوال الى خارج الكلاس لامانع به. مثلآ استخدامه في main او اي مكان اخر
2- private: لايمكنك أستدعاء اي متغيرات او الدوال الى خارج كلاس.
3- protected: هذا لايسمح لك او لايمكنك استدعاء اي متغير او دوال الى خارج الكلاس ألا من خلال كلاسات inherited فقط. راح نشرح عنها بالمقال مع inherited
خلينا نطبق مع public تمام.
تنكتب بهذي طريقة
أول شي ننشئ كلاس بأسم myclass
ثم من داخل نكتب public:
بعد كذا نقدر نكتب اي متغيرات او دوال
مثلآ انا كتبت
int number;
كذا كتبت نوع المتغير هو ارقام تمام
ألان نجي في main هل يتم استقباله او لا؟
خلينا ندخل قيمة ثم نطبع نشوف وش يصير.
زي ماعملنا أول شي اسم كلاس ثم object
بعد كذا كتبنا اسم object ثم نقطة و بعدها كتبنا اسم المتغير التي متواجد في الكلاس من صف public
و بعد كذا كتبنا طباعة يطبع نفس المتغير.
زي ماهو موضح طبع لنا رقم القيمة التي مخزنة بالمتغير نفسه. كذا تمام
ألان نجي على private :
زي ماكتبنا هنا أول شي كتبنا private
بعدها تحت كتبنا اسم المتغير هو num
كذا تمام
ولكن سؤال؟
لما كتبنا في main كذا
theobj.num = 4
هل بتكون صحيح أو لا؟
خلينا نجرب
ألاجابة: لن تضبط ليش؟ لانه المتغير نفسه موجود في private وليس public حتى في Error وضح هذا الشئ.
وايضآ وجوده في private تعني لايسمح بتواصل معاه او استدعاءه الى خارج الكلاس نهائيآ.
ولكن في طريقة نقدر نسويها و تضبط كيف؟
أول شي نجي عند public ونعمل دالة بحيث يتم تمرير المتغير num في برايفت على المتغير التي موجود بالدالة
كذا
زي ماتلاحظون تحت public
كتبنا أسم الدالة numb1
ثم انشأنا اسم المتغير x بحيث يتم تمرير القيمة موجوده من خلال x الى num
داخل الدالة كتبنا أول شي المتغير التي موجوده في private
بعد كذا يساوي و ثم المتغير التي موجود في parameter تبع الدالة زي ماهو موضح
طيب نجي في main كيف نكتبها؟؟
كذا
كذا كتبنا في main
اسم obj ثم نقطة ثم اسم الدالة التي تم كتابتها في الكلاس
theobj.num1(3)
الرقم بين القوسين هذا القيمة التي راح يتم تخزينها في num الموجوده في private
هذا map كيف بتكون
1- أستقبال القيمة من المستخدم هو 4 وبعد كذا يذهب الى parameter المتغير هو x
2- بعد ما x استقبل القيمة و اصبح هو 4. حان الوقت يتم نقل القيمة من x الى num بسبب وجود يساوي num = x
3- num ألان لديه القيمة رقم 4 ويتم تخزينها و حفظه بالامان في private
هذا فكرة private بشكل عام
بس لحظة عبدالعزيز باقي الطباعة؟
الطباعة ماراح تطبع نفس طريقة الى فوق ليش؟ لانه تحتاج نعمل لها Return يجي شي اسمه Encapsulation راح اشرح عنها بأذن الله لانه مخصص له
خلينا نجرب نشوف وش يصير.
زي ماتلاحظون ظهر خطأ بسبب الدالة هي أصلآ void وليس int و تحتاج ايضآ نعمل لها Return
لهذا سبب قلت لكم هذا جزء مع Encapsulation و راح اشرح عنها بالتفصيل أن شاءالله..
أشوفكم بالدرس القادم.