برمجة كائنية التوجه

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث

البرمجة كائنية المنحى (بالإنجليزية: Object-oriented programming - OOP ) (ويطلق عليها أحيانا اسم: برمجة غرضية المنحى، أو برمجة شيئية أو برمجة موجهة نحو الكائنات (أو العناصر). وهي عبارة عن نمط برمجة متقدم، وفيه يقسم البرنامج إلى وحدات تسمى الكائنات (Objects)، كل كائن عبارة عن حزمة (تعليب) من البيانات (المتغيرات والثوابت) والدوال ووحدات التنظيم وواجهات الاستخدام. ويتم بناء البرنامج بواسطة استخدام الكائنات وربطها مع بعضها البعض وواجهة البرنامج الخارجية باستخدام هيكلية البرنامج وواجهات الاستخدام الخاصة بكل كائن.

أساليب كائنية المنحى (Object Oriented Paradigms)[عدل]

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

  1. التغليف (Encapsulation).
  2. الميراث (Inheritance).
  3. تعدالأشكال (Polymorphism).

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

الفئات والكائنات (Classes and Objects)[عدل]

يمثل فئة (Class) مفهوم واحد مثل هذا الكائن ( Object ).حيث تمثل الفئة مجموعة "أصناف" من الأشياء التي وصفتها بعض البيانات، ولها نفس السلوكيات "الأنشطة". تعد وتخدم الفئةكمخطط لكائن. على سبيل المثال لدينا فئة الطالب تحدد خصائص من كائناتها مثل الاسم والعنوان والتخصص، والمعدل التراكمي عن البيانات وتحديث عنوان أو إعادة حساب المعدل التراكمي عنأساليب أو أنشطة كل كائن من نوع الفئة التي يستطيع الطالب تنفيذه أو يجب تحقيقه. الكائن منهذا النوع يمكن أن يكون أي فئة الطالب الفردية في الجامعة. يمكن أن نفكر في أمثلة أخرى كثيرة مثل فئة السيارات، طبقة الطائرة، فئة الثدييات، وحلقت فئةالحيوان، وطبقة الأثاث، وأمثلة أخرى كثيرة. وبالتالي، لكي نعرف الفئة نحتاج لإعلان البيانات والأساليب التي ينبغي أن يكون كل كائن من هذا النوع.و أعلن كل بند البيانات سواء كان متغير أو ثابت، ولكل نشاط (وظيفة ) يجب أن تكون ممثلة من قبل وسائل احد أو أكثر. من الطبقة يمكننا تمثيل، الكائنات النشطة التي لها نفس المحتويات أي متغيرات البيانات والأساليب.يجب على كل كائن تعيين قيم لمتغيرات البيانات لديه. هذه القيم تعمل على تحديد حالة كائن تم إنشاؤه من الفئة. الأساليب التي تم تعريفها في الفئة تمثل سلوك الكائن. وفقا لذلك، في حين أن الفئة لديها البيانات والأساليب. إنشاء كائن يسمى مثيل( Instantiation ). الكائن هو مثيل لفئة معينة، ونحن نستطيع إنشاء مثيل للعديد من الكائنات كما أننا بحاجة لأي برنامج معين. على سبيل المثال، فإن الكائن من فئة الطلاب التي يمكن إنشاء مثيل لها التي هي البيانات الفعلية "القيم" من اسم الطالب وعنوانه والتخصص، والمعدل التراكمي، ولها السلوكيات التي هي أساليب محددة في فئتها. [1]

أسماء عربية أخرى[عدل]

  • برمجة كينونية
  • برمجة شيئية المنحى.
  • برمجة موجهة
  • برمجة كائنية
  • برمجة كائنية التوجه
  • برمجة غرضية التوجه
  • برمجة كائنية المنحى (أو المنحى)
  • برمجة بالعناصر
  • برمجة موجهة نحو الكائنات (أو العناصر)
  • البرمجة بالكائنات

البرمجة الكائنية عبارة عن نمط برمجة متخصص في المفاهيم التالية:

  • الفئة Class وهو نموذج الوحدة الرئيسية لبناء الـكائن (Object) بمعنى أنه يتم تكوين أكثر من كائن على أساس نموذج البناء الأساسي وهو (Class), ويمكن تشبيه الكلاس بالقالب الذي يقوم بتشكيل الكائن ويمكن بعد ذلك استخدام هذا الكائن لأي غرض مطلوب.
  • الكائنات Objects - حزم وتعليب البيانات والدوال الوظيفية معاً في وحدات تعمل ضمن برنامج نشط. الكائنات هي أساس هيكلية برمجة الحاسوب الكائنيّة.
  • المثال Instance وهو شكل الكلاس أو كائن محدد والذي ينشأ في وضع التشغيل، وبشكل آخر يمكن أن نسمي الكلاس في وضع التشغيل (نموذج). 
  • التجريد Abstraction - قدرة البرنامج على تجاهل بعض واجهات المعلومات المتلاعبة، أي التركيز على المفهوم الأساسي للكائن وهيكليته النظرية وتجريدة من طريقة العمل النهائية والتوجهات الخارجية.
  • التغليف Encapsulation - التأكد أن المستخدم لا يستطيع أن يغير البيانات الداخلية لكائن بطريقة مفاجئة، فقط دوال الكائن الداخلية يسمح لها بتعديل حالة الكائن وبياناته. أي أن لايمكن التلاعب بالكائن وتغير معلوماته بأي طريقة بل أن هناك واجهة استخدام خاصة يضعها المبرمج ومن خلالها يمكن تغيير بيانات الكائن الداخلية وحالته.
  • تعدد الأوجه Polymorphism - بدلاً من استدعاء الإجراءات الفرعية مباشرة، تستطيع البرمجة الشيئية إرسال رسائل، الإجراء المعين الذي يتم نداؤه نتيجة الرسالة يعتمد على نوع الكائن الذي أُرسل له. أي أنه باستخدام نفس اسم الاستدعاء يمكن استدعاء إجراءات ودوال مختلفة اعتماداً على نوع الكائن.
  • الوراثة Inheritance - يستطيع الكائن وراثة خصائص كائن معين والزيادة عليها دون أن يتأثر الكائن الأصلي. فقد يكون هناك كائن اسمه مركبة في الخصائص العامة لكل المركبات مثل الاسم واللون ورقم التسجيل، الكائن الطائرة ممكن أن يرث الكائن مركبة ويضيف عليه خصائص الطائرة، كذلك يمكن أن يكون هناك مثلاً كائن مربع فيه خصائص الطول والعرضShinwano ويمكن للكائن مكعب أن يرث من المربع ويضيف عليه خصائص العمق والحجم.

مثال على تعددية الأوجه: إذا افترضنا أن المتغير مركبة يشير إلى كائن إما أن يكون سيارة أو سفينة أو طائرة. فإذا أردنا في المثال للطائرة أن تطير وللسيارة أن تمشي وللسفينة أن تبحر فعلينا أولاً معرفة نوع الكائن ثم إعطاء الأمر؛ أي إذا كان مركبة هو كائن من نوع سفينة فالمركبة يجب أن تبحر، ولكن مع تعددية الأوجه يمكننا أن ننشئ دالة واحدة في كل كائن اسمها تحرك (الدالة تحرك في السفينة تقوم بالأبحار والدالة تحرك في الطائرة تقوم بالطيران..الخ). الآن ليس يجب علينا أن نعرف نوع الكائن فكل ما علينا فعله هو نداء تحرك للمركبة، هذا سيقوم باستدعاء دالة تحرك الخاصة بالكائن الحالي فإذا كان الكائن سفينة فهذا يعني أن الدالة تحرك الخاصة بالسفينة ستسدعى والتي ستقوم بأبحار السفينة.

من أحدث أساليب هندسة البرامج ما يعرف ب object oriented approach: تعد الطريقة الموجهة للكينونات من الأساليب الجديدة في تطوير النظم وهو أسلوب التحليل والتصميم الكينوني object oriented design and analysis حيث يقوم هذا الأسلوب بدمج البيانات والعمليات في بيئة واحدة تسمى كينونة object وتمثل الكينونة عادة الأشياء الواقعية التي يعالجها نظام المعلومات مثل الزبائن والمزودين والعقود واتفاقيات الإيجار.

المراجع[عدل]

  1. ^ ddison-wesley, 2008.java foundations: introductionto program design and structures, john lewis, peter depasquale, jo chase, a