أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الثالث - الـ Objects)

أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الثالث - الـ Objects)

مرحبا بك صديقي في مقال اخر و درس اخر من سلسلة المقالات الخاصة بمجال البرمجة كائنية التوجه OOP، قدمنا في كل من الدرسين السابقين تمهيدا لمفهوم الـ OOP، و كيف يختلف عن البرمجة الوظيفية العادية، و كيف يمكنه ان يحسن العديد من الجوانب من مشروعنا البرمجي خصوصا هيكلة البيانات، ثم راجعنا معك في الدرس الثاني مفهوم الكلاس، الخطوة الأولة و اللبنة الأساسية في البدئ في كتابة كود برمجي مبني على البرمجة كائنية التوجه، قمنا بإستعراض كيف للكلاس ان تبدو، و اساسياتها الداخلية و اهم الأساسيات التي تكون كلاس برمجي . 
في هذا الجزء و هو الجزء الثالث، سنتحدث عن الـ Object و هو الذي من خلاله نستعرض ما جاء في الكلاس إن صح التعبير، شرح الـ Object لا يحتاج ذلك التعقيد، لذلك سيكون الجزء الثالث خفيفا، سنراجع من خلاله مفهوم الـ Object و متى يتم إستخدامه، و نموذج لـ Object بسيط إنطلاقا من الـ Class الذي صنعناه سابقا . 

أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الثالث - الـ Objects)

ما هو الـ Object : 

ذكرنا لك سابقا ان الـ Class تحدد ما هي الـ Object و هي التي تضع وصفه الخاص، في مثالنا الخاص بالحاسوب، قمنا بصناعة كلاس تتضمن أساسيات صناعة حاسوب، مثل اسمه ( او اسم الشركة المصنعة ) و كذا مساحة الـ RAM و Hard Drive و غيرها من الأساسيات، كما وضعنا مجموعة  من الـ Actions التي تمثل الحاسوب او التي يستطيع الحاسوب فعلها، و بذلك نكون قد إنتهينا من وصف الحاسوب . 
يأتي الـ Object ليُخضع وصف الحاسوب المدرج في الكلاس للإستخدام، إذ يتكون الـ Object من كل الوصف و الأكشن التي تم إدراجها في الكلاس، لكن لا بد للـ Object ان يتم تحديده بناءا على الكلاس، اي يكون الـ Object عبارة عن Instance من الكلاس الرئيسية . 

الـ Object ليس بمتغير Variable، إن اردنا تقريبه قليلا لفهمه بشكل أبسيط، فيمكننا ان نقول انه متغير مبني على كلاس، بحيث يتضمن هذا " المتغير " كل المتغيرات و الدوال و الـ Actions و كل شيئ موجود في الكلاس التابع له، من الخطأ نعث الـ Object بالـ Variable، لأنه أكثر تعقيدا و أكثر وصولا . 
في كل مرة - و إتباعا لمثالنا - نريد ان نصنع حاسوب لشركة معينة او نفس الشركة فقط حاسوب مختلف، عليك خلق Object جديد، و تمرير البيانات و المعلومات لذلك الـ Object من أجل إستحواذها و تخزينها . 
لربما كان الأمر ملخبطا أليس كذلك ؟ دعونا نعود الى الكلاس الخاصة بنا سابقا و نبني Object تابع لها : 

أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الثالث - الـ Objects)

نبدأ أولا بإسم الكلاس الخاص بنا، و هو Compute، من أجل صناعة Object يجب علينا اولا تحديد إنتماء هذا الـ Object لفعل ذلك، نقوم بوضع إسم الكلاس في البداية، ثم بعدها إسم الـ Object الذي نريد بنائه، او الذي سيحمل خصائص الكلاس كاملة و الذي نريد ان نتعامل معه، في حالتنا و بما أننا نتعامل مع الحواسيب فقد إستخدمت حاسوبا من نوع Acer، ان ما اريد بنائه هو حاسوب من نوع Acer، ثم نقوم بتمرير new Computer إشادة منا ان هذا الـ Object هو عنصر جديد من الكلاس Computer . 
تختلف تسمية او تحديد الـ Object من لغة لأخرى ( مثالنا الأعلى بإستخدام الجافا )، فمثلا في الـ Php نقوم بصناعة Object بطريقة مختلفة قليلا كما الشكل التالي :


بعد أن قمنا بصناعة Object و هو حاسوب Acer، يمكنني الآن إدراج مقومات و خصائص هذا الحاسوب، و كذا الأكشن و الأفعال التي يقوم بها و تجربتها كذلك، لاحظ انه فور تحديد العنصر و وضع ( . ) من أجل إستخدام خصائصه، يُظهر الـ IDE الأشياء التالية : 





أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الثالث - الـ Objects)

إن امعنت النظر و راجعت الكلاس الأصلي الذي صنعناه للحاسوب، فقد أعطيناه من الخصائص الـ id و الـ motherBoardModel و كذا الـ name و الـ Ram Model كخصائص او Fields، ثم أعطيناه turnOff و turnOn كأفعال او Actions يقوم بها الحاسوب، فور صناعتنا للـ Object الذي يحدد لنا حاسوب جديد من نوع Acer، يقوم ذلك العنصر بأخذ و حمل كل الخصائص و الأفعال التي تم تحديدها له في الكلاس، و بالتالي يمكننا إدراج أي بيانات للـ Object و إستعراضها، اي يمكنني ان انحدد لهذا الحاسوب الجديد الاسم الخاص به، و نوع الram و نوع motherboard، و يمكنني ايضا ان اقوم بتشغيله او إطفائه . 
و يمكننا إعطاء القيمة التي نريد لكل عناصر الـ Object عن طريق تحديد العنصر ثم الخاصية التي نريد إدراجها له ثم القيمة بعدها على الشكل التالي : 




أساسيات و مفاهيم يجب عليك إدراكها حول البرمجة كائنية التوجه OOP ( الجزء الثالث - الـ Objects)

تذكر ان الشفرة البرمجية هي شفرة بلغة الجافا، أساسيات الـ OOP تختلف من لغة لأخرى كما أشرنا، بالطريقة التالية، و بتحديد قيم الكلاس من خلال العنصر الأول Acer، فقد أصبح لدي حاسوب يحمل إسم Acer ذو id قيمته 1 و إسم Acer Aspir و غيرها من القيم، كما يمكنني التحكم في إيقافه او تشغيله، و بالتالي يمكنني تمرير كل أنواع البيانات مادامت محددة في الكلاس الخاص بالـ Computer للعنصر و التحكم به كما أريد . 


خلاصة الدرس : 


ببساطة، قمنا في هذا الدرس بتحديد عنصر Object تابع للكلاس Computer و ذلك بصناعة حاسوب جديد و تمرير قيم خاصة بذلك الحاسوب قمنا بتحديدها مسبقا في الكلاس على شكل Properties و Actions في وقت سابق . 





شاركه على :