برمجة كائنية التوجه
البرمجة كائنية المنحى Object-oriented programming - OOP (ويطلق عليها أحيانا اسم: برمجة غرضية المنحى، أو برمجة شيئية مع أن هذه الأخيرة لا تعتبر ترجمة محبذة) أو برمجة موجهة نحو الكائنات (أو العناصر) وهي عبارة عن نمط برمجة متقدم، وفيه يقسم البرنامج إلى وحدات تسمى الكائنات (Objects)، كل كائن عبارة عن حزمة (تعليب) من البيانات (المتغيرات والثوابت) والدوال ووحدات التنظيم وواجهات الاستخدام. ويتم بناء البرنامج بواسطة استخدام الكائنات وربطها مع بعض وواجهة البرنامج الخارجية باستخدام هيكلية البرنامج وواجهات الاستخدام الخاصة بكل كائن.
أسماء عربية أخرى:
- برمجة كينونية
- برمجة شيئية المنحى.
- برمجة موجهة
- برمجة كائنية
- برمجة كائنية التوجه
- برمجة غرضية التوجه
- برمجة كائنية المنحى (أو المنحى)
- برمجة بالعناصر
- برمجة موجهة نحو الكائنات (أو العناصر)
- البرمجة بالكائنات -
البرمجة الكائنية عبارة عن نمط برمجة متخصص في المفاهيم التالية:
- الفئة Class وهو نموذج الوحدة الرئيسية لبناء الـكائن (Object) بمعنى أنه يتم تكوين أكثر من كائن على أساس نموذج البناء الأساسي وهو (Class), ويمكن تشبيه الكلاس بالقالب الذي يقوم بتشكيل الكائن ويمكن بعد ذلك استخدام هذا الكائن لأي غرض مطلوب.
- الكائنات Objects - حزم وتعليب البيانات والدوال الوظيفية معاً في وحدات تعمل ضمن برنامج نشط. الكائنات هي أساس هيكلية برمجة الحاسوب الكائنيّة.
- المثال Instance وهو شكل الكلاس أو كائن محدد والذي ينشأ في وضع التشغيل، وبشكل آخر يمكن أن نسمي الكلاس في وضع التشغيل (نموذج).
- التجريد Abstraction - قدرة البرنامج على تجاهل بعض واجهات المعلومات المتلاعبة، أي التركيز على المفهوم الأساسي للكائن وهيكليته النظرية وتجريدة من طريقة العمل النهائية والتوجهات الخارجية.
- التغليف Encapsulation - التأكد أن المستخدم لا يستطيع أن يغير البيانات الداخلية لكائن بطريقة مفاجئة، فقط دوال الكائن الداخلية يسمح لها بتعديل حالة الكائن وبياناته. أي أن لايمكن التلاعب بالكائن وتغير معلوماته بأي طريقة بل أن هناك واجهة استخدام خاصة يضعها المبرمج ومن خلالها يمكن تغيير بيانات الكائن الداخلية وحالته.
- تعدد الأوجه Polymorphism - بدلاً من استدعاء الإجراءات الفرعية مباشرة، تستطيع البرمجة الشيئية إرسال رسائل، الإجراء المعين الذي يتم نداؤه نتيجة الرسالة يعتمد على نوع الكائن الذي أُرسل له. أي أنه باستخدام نفس اسم الاستدعاء يمكن استدعاء إجراءات ودوال مختلفة اعتماداً على نوع الكائن.
- الوراثة Inheritance - يستطيع الكائن وراثة خصائص كائن معين والزيادة عليها دون أن يتأثر الكائن الأصلي. فقد يكون هناك كائن اسمه مركبة في الخصائص العامة لكل المركبات مثل الاسم واللون ورقم التسجيل، الكائن الطائرة ممكن أن يرث الكائن مركبة ويضيف عليه خصائص الطائرة، كذلك يمكن أن يكون هناك مثلاً كائن مربع فيه خصائص الطول والعرضShinwano ويمكن للكائن مكعب أن يرث من المربع ويضيف عليه خصائص العمق والحجم.
مثال على تعددية الأوجه: إذا افترضنا أن المتغير مركبة يشير إلى كائن إما أن يكون سيارة أو سفينة أو طائرة. فإذا أردنا في المثال للطائرة أن تطير وللسيارة أن تمشي وللسفينة أن تبحر فعلينا أولاً معرفة نوع الكائن ثم إعطاء الأمر؛ أي إذا كان مركبة هو كائن من نوع سفينة فالمركبة يجب أن تبحر، ولكن مع تعددية الأوجه يمكننا أن ننشئ دالة واحدة في كل كائن اسمها تحرك (الدالة تحرك في السفينة تقوم بالأبحار والدالة تحرك في الطائرة تقوم بالطيران..الخ). الآن ليس يجب علينا أن نعرف نوع الكائن فكل ما علينا فعله هو نداء تحرك للمركبة، هذا سيقوم باستدعاء دالة تحرك الخاصة بالكائن الحالي فإذا كان الكائن سفينة فهذا يعني أن الدالة تحرك الخاصة بالسفينة ستسدعى والتي ستقوم بأبحار السفينة.
من أحدث أساليب هندسة البرامج ما يعرف ب object oriented approach تعد الطريقة الموجهة للكينونات من الأساليب الجديدة في تطوير النظم وهو أسلوب التحليل والتصميم الكينوني object oriented design and analysis حيث يقوم هذا الأسلوب بدمج البيانات والعمليات في بيئة واحدة تسمى كينونة object وتمثل الكينونة عادة الاشياء الواقعية التي يعالجها نظام المعلومات مثل الزبائن والمزودين والعقود واتفاقيات الإيجار.
|
af:Objekgeoriënteerde programmering be:Аб'ектна-арыентаванае праграмаванне be-x-old:Аб’ектна-арыентаванае праграмаваньне bg:Обектно-ориентирано програмиране bn:অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং bs:Objektno orijentisano programiranje ca:Programació orientada a objectes cs:Objektově orientované programování da:Objektorienteret programmering de:Objektorientierte Programmierung el:Αντικειμενοστρεφής προγραμματισμός Object-oriented programming]] eo:Objektema programado es:Programación orientada a objetos et:Objektorienteeritud programmeerimine eu:Objektuei orientatutako programazio fa:برنامهنویسی شئگرا fi:Olio-ohjelmointi fr:Programmation orientée objet gl:Programación orientada a obxectos he:תכנות מונחה-עצמים hr:Objektno orijentirano programiranje hu:Objektumorientált programozás id:Pemrograman berorientasi objek io:Objekt-orientizita programifo is:Hlutbundin forritun it:Programmazione orientata agli oggetti ja:オブジェクト指向 ka:ობიექტზე ორიენტირებული პროგრამირება kk:Объектілік-бағдарланған программалау ko:객체 지향 프로그래밍 lt:Objektinis programavimas lv:Objektorientētā programmēšana mk:Објектно-ориентирано програмирање mn:Объект хандалтат програмчлал ms:Pengaturcaraan berorientasi objek nl:Objectgeoriënteerd nn:Objektorientert programmering no:Objektorientert programmering pl:Programowanie obiektowe pt:Orientação a objetos ro:Programare orientată pe obiecte ru:Объектно-ориентированное программирование rue:Обєктово орьєнтоване проґрамованя scn:Prugrammazzioni urientata all'uggetta sh:Objektno orijentisano programiranje simple:Object-oriented programming sk:Objektové programovanie sq:Programimi i orientuar në objekte sr:Објектно-оријентисано програмирање sv:Objektorienterad programmering ta:பொருள் நோக்கு நிரலாக்கம் th:การเขียนโปรแกรมเชิงวัตถุ tr:Nesne Yönelimli Programlama uk:Об'єктно-орієнтоване програмування ur:برمجہ شئے التوجہ vi:Lập trình hướng đối tượng wuu:面向对象程式编制 zh:面向对象程序设计