ماهو public و ماهو private في كلاس oop part 4
الكاتب: Mr.Aziz
تاريخ النشر: 2022-04-08 13:18:38
مساء الخير
اليوم راح اسوي شرح بسيط عن الفرق او ماهو private و ماهو public في class طبعآ هذا جزء من oop
وراح ابسطها بخطوه خطوه عشان اوضح مفهوم فكرة private
ماهو public؟ هو يتم وصول المعلومات او القيم التي مخزنه في المتغيرات من خلال كلاس يعني لازم نستدعي كلاس عشان نقدر نستخدم المتغيرات الى فيها القيم
زي ماشرحت لكم المره السابقة
طيب ماهو private ؟
هذا النوع يتم استدعاء سواء ميثود او متغيرات تكون داخل كلاس فقط ولايمكن أخراج القيمة التي بيها الا عن طريق متغير اخر. سوف اشرح عنها لاتقلق.
هذا مثال عن public زي ماأحنا عارفين
طيب كيف طريقة private?
أول شي نضع المتغير num تكون برايفت
private int num
تكون داخل كلاس هكذا
ألان عملنا متغير من نوع private تمام!
خلينا نجرب نعمل أمر طباعة ونشوف وش يطلع لنا!
زي ماتلاحظون طلع لنا خطأ لانه متغير هذا هو اصلآ private
طيب كيف نحل هذي مشكلة؟؟
نروح نعمل ميثود يتم تمرير المتغير الى متغير جديد
هكذا
بهذي طريقة
ولكن تذكر لايمكن اننا نضع امر طباعة في main بسبب نوع ميثود هو void وذكرناه بالدروس تبع Function
المهم بهذي طريقة تكون الدالة ثم parameter تكون اي متغير بس بشرط نفس النوع
ثم نضع أول شي متغير التي متواجده في private ثم نضع متغير التي متواجد في parameter
ثم نروح main و نعمل هكذا
نضع في main هكذا
obj.info() ثم داخل القوسين تكون ارقام ليش ؟ عشان ينحفظ في المتغير اسمه number
حتى واضح بشكل تلقائي كاتب number آي يرجع الى متغير التي تم أنشاءه
خلونا نعمل طباعة من داخل ميثود عشان نشوف النتيجة
ألان عملنا أمر طباعة من داخل ميثود
بحيث اي رقم نضعه يتم طباعتها عن طريق المتغير number
واذا وضعنا متغير num التي مفترض يكون private راح يطبع نفس النتيجة زي ماتلاحظون ليش؟
لانه أول شي لما وضعنا القيمة 33 تم تخزينها في المتغير بأسم number و بعد كذا
جاء هذا متغير num يساوي number
num = number
كذا من يمين الى يسار انتقل القيمة 33 الى المتغير num
لهذا السبب تشوف متغير num و number نفس النتيجة
في حال ماوصلت لك المعلومه. ليطمئن قلبك خلينا نشيل num = number
ثم نعمل طباعة number ثم num نشوف ويطلع لنا :)
زي ماتلاحظون هنا
لما عملنا طباعة للمتغير num التي متواجده في private راح يعطينا قيمة هي 0 ليش؟ لاننا ماعملنا قيمة لها
ولكن لما عملنا طباعة للمتغير number راح يعطينا 33 ليش؟ لانه تم طباعتها عن طريق main ولكن num يتم طباعتها عن طريق private فقط.
هذي نبذة سريعة عن num مع القيمة مثل ماذكرنا
ليش صار كذا؟ لانه داخل كلاس ويتم سماح استخدامها من داخل كلاس فقط وليس مثل public
وأنتهينا
اشوفكم على خير....