++C

درس عن Encapsulation (SET ,GET):  oop

الكاتب: Mr.Aziz

تاريخ النشر: 2023-03-14 05:08:19

مساء الخير

 

اليوم راح اتكلم عن Encapsulation هي عباره عن GET و SET و ماذا تعني؟

Set : تعني كتابة القيمة او ادخال القيم في المتغيرات الموجودة

get: يتم استقبال القيمة التي كانت موجوده في SET و ارسال القيمة الى المتغير المتواجد في private

 

هذي خاصة لل private و تكملة الدرس السابق لو ماشفته تفضل من هنا لازم تقراها اذا مافهمت private

 

طبعآ encapsulation هي اخفاء معلومات الحساسة في مكان أمن او مكان بعيد عن المستخدم بحيث مايتلاعب فيه او يمسح القيم او يعدلها الا عن طريق GET و SET فقط.

 

لانه عندما يكون برنامج شغال طول الوقت القيمة تكون محفوظه بالاساس ولايمكن تعديلها او حذفها نهائي.

 

زي ماقلت الا عن طريق GET و SET  لهذا سبب وجود private لكي تستطيع أستخدام الدالة او المتغيرات الا عن طريق GET  و set عكس المتغيرات والدوال التي متواجدة في public

 

المهم نبدء أول شي راح اعمل public و private  تمام.

في private راح اضع متغير واحد لكي توصف فكرتها أو مفهوم Encapsulation

 

 

هنا كتبت الكلاس بأسم myclass ثم وضعت public و private

 

وتحت private كتبت متغير واحد من نوع int

int number;

آي النوع هذا يقبل فقط أرقام

 

زي مااحنا عرفنا من درس السابق لايمكن استخدام المتغير number الى خارج الكلاس

 

في هذي الحالة راح نعمل دالتين الى هي Set و GET

 

 

زي ماتلاحظ هنا

كتبت أول دالة عباره عن SET و الدالة تكون باسم SETNumber

علميآ تستطيع تسمي اي اسم اخر مو شرط يكون SET نهائيآ ولكن بهذي طريقة راح تعرف SetNumber تابعه مين في GET

 

بهذي طريقة يتم استقبال القيمة من المستخدم الى المتغير التي متواجد في private

راح اسوي map بعد مانخلص لتسهيل الفهم تمام.

 

كذا خلصنا من Set

الان نجي GET نسمي الدالة GetNumber هكذا

 

نجي نكتب زي كذا

 

int GetNumber(){return number}

int: تعني اي قيمة على نفس النوع المتغير متواجد في private

GetNumber(): هنا اسم الدالة ولكن هالمره بدون parameter

{ Number return}: بين قوسين يكون Return و اسم المتغير التي متواجد في private ليش؟ لانه بكل مره تكتب متغير راح يتخزن في المتغير Number

 

ألان انتهينا من Get و set تمام.

 

خلينا نجي في main و نخلي المستخدم يدخل رقم و بنفس الوقت يكون في طباعة

 

 

كالعادة زي ماأحنا عارفين ننشئ object الى هو Thisclass

 

ثم نكتب Thisclass.setNumber(44)

 

هنا كتبنا أسم المتغير تبع object ثم نقطة ثم اسم الدالة Set التي متواجدة في public  وبين قوسين لازم نحط الرقم او المستخدم يدخل الرقم بالعادة

 

هذا نفس الدرس الي امس اذا تتذكرون

 

طيب ألان يجي دور Get

نسوي امر الطباعة

cout<

هنا كتبنا المتغير تبع object ثم الدالة تبع GET

 

تتذكرون امس لما عملنا طباعة و طلع خطأ!!

 

تتوقعون نفس النتيجة الان او راح يطبع 44 ؟

 

تعالو نجرب

 

أﻷن الحمدالله طبع القيمة التي تم كتابتها من قبل المستخدم ولايوجد اي خطأ

هنا mapping لو ماوصلت المعلومة

 

1- عندما يدخل المستخدم القيمة 3 تلقائيآ يروح على المتغير في parameter الموجوده في دالة Getnumber

2- المتغير S التي متواجدة في parameter يكون فيه القيمة 3 وراح يتم نقلها الى داخل المتغير التي متواجد داخل الدالة

3- بعد كذا بوجود number تعني القيمة 3 تم نقلها من المتغير S الى المتغير Number ليتم حفظ القيمة في private

4- ألان القيمة محفوظة بأمان في المتغير number

 

هذي فقط map تبع Set و عند ادخال المستخدم ايش قاعد يصير بضبط

 

 

الان نجي تبع get

 

1- بعد مايتم أمر الطباعة الدالة getnumber تعمل اتصال على نفس الدالة التي متواجدة في public ليش لانه في main تعتبر function call

لو رجعت دروس الدالة راح تعرف اي دالة لها نوع int او string بأمكاننا نعمل نفس الطريقة هذي.

 

2- Return number أول شي المتغير number يكون فيه القيمة 3 ومحفوظة يتم ارسال القيمة من المتغير متواجد في private الى دالة Get

 

3- Return يقول للدالة ترا هذا القيمة التي متواجدة في متغير number هو 3 ثم يتم حفظها في نوع المتغير int عشان عند الطباعة يتم طباعة الرقم

 

كذا أنتهينا من Encapsulation