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