درس عن 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