ماهو 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

 

وأنتهينا

اشوفكم على خير....