المساعد الشخصي الرقمي

عرض الإصدار الكامل : درس في ال(class)سي بلس بلس


ونة حزن
07-13-2006, 02:48 AM
code:

class myClass {
int x,y,z;
int GetPoint(int p);
Bool DeleteIt(int p);
Bool InsertIt int p);
};





هنا بنينا الفئة, لم يتم حجز ذاكرة لها...

الان:
MyClass OurClass ;
هذه عملية ال Instantiation أي تعريف كائن من الفئة... الكائن هنا هو OurClass بينما الفئة هي MyClass...

ملاحظة: الكود أعلاه كود تجريدي, لا معنى له سوى التوضيح.

الأسس الثلاث للبرمجة الموجهة بالكائنات:
1- الاحتواء او الكبسلة (تعرضنا له في شرحنا اعلاه.encapsulation
2- الوراثة. Inheritance
3- تعدد الاشكال. Polymorphism
سنشرح كل اساس بالتفصيل.

حسب تعريف Bjarne Stroustrup , صانع لغة سي++: لكي تكون اللغة لغة موجهة بالكائنات عليها ان تدعم ثلاث اسس, كائنات , وفئات, والوراثة.
لكن مع تغيّر الزمن تغيرت هذه المفاهيم لكي تصبح اسس البرمجة الموجهة بالكائنات هي : الاحتواء, الوراثة وتعدد الاشكال.

-الاحتواء أو الكبسلة
يسمّى الاحتواء أحيانا بـ (إخفاء البيانات) وهو كما ذكرنا قدرة الكائن على اخفاء بياناته الداخلية وتوفير واجهة من خلالها يمكن للبرنامج "الحديث" مع الكائن –بائع الخبز -
حسنا... فهمنا أن الكبسله هي قدرة الكائن على إخفاء بياناته, وتوفير واجهة لكن ما الفائدة, لماذا هذا التعقيد!!!
طبعا اذا عرف السبب بطل العجب.. سنأخذ المثال التالي:
عليك تصميم برنامج يأخذ من المستخدم ورزنه وطوله, ثم يرجع للمستخدم مدى مناسبة وزنه لطوله, والوزن المثالي المطلوب لطوله هذا. ما المشكلة؟ المشكلة انه قد يتم تغذية البرنامج بمعلومات خيالية: الوزن 750 كغم.. أو الطول 0.1 متر !! أو حتى الطول -10 متر!!!
بالعربي الفصيح عدم ملائمة المعطيات للمشكلة التي سنحلها! ما الحل؟
الحل الاول (طريقة التفكير القديمة ) : عند كل مكان نتلقّى من المستخدم معلومة يجب فحص مدى ملائمتها للبرنامج.. واعطاء الانذار المناسب للمستخدم اذا حاول التلاعب بالبرنامج.... ما مشكلة هذه الطريقة؟؟؟ مشكلتها انك تطلب من المبرمج أن يفحص المدخلات عند كل مرّة يتلقى من المستخدم هذه المعطيات, وإذا نسي المبرمج مرّة واحدة ان يفحص المدخلات, ستقع مصيبة .
الحل: (طريقة البرمجة الموجهة بالكائنات.. سنبني كائن اسمه information يحتوي هذا الكائن على متغيّر اسمه weighing ومتغير باسم length ..
ولن نسمح للبرنامج بتغيير هذه القيم, بل سنجعل للكائن نفسه دالة اسمها set هذه الدالة تأخذ من البرنامج القيَم وتفحصها ثم اذا كانت القيم مناسبة تدخلها الى المتغيرات وان لم تكن مناسبة لا تدخلها الى المتغيرات وتعطي انذار... البرنامج لا يمكنه ان يبلغ المتغيرات weighing و length مشكل مباشر لكنه يطلب من الدالة set أن تعوض القيم داخل المتغيرات... مهمة الدالة set هي فلترة القيم, وتحديد المناسب من غيره. حسن, هكذا نرى انه ليس على المبرمج تذكّر عمل فحص كل مرة يحصل على قيمة من المستخدم.. مذا سيقوم به الكائن, لأن البرنامج أصلا لن يتمكّن من تغيير تلك القيم لذا فلن يضع فيها قيم خاطئة.

MSHAER
07-13-2006, 03:32 AM
تسلمين أختي ,

ونة حزن
07-13-2006, 03:39 AM
الله يسلمك خيوووووووو