Skip to content Skip to footer

Object Oriented Programming

معنى Object-oriented programming – OOP

مصطلح دارج وشائع للغاية لكل مبرمج أو من بدء في تعلم البرمجة

من المهم أيضا معرفة مبادئ التصميم الثابتة

وهو البرمجة كائنية التوجه أو البرمجة الشيئية Object-Oriented Programming

ويطلق عليها أحيانا اسم برمجة كائنية المنحى أو برمجة موجهة نحو الكائنات أو العناصر

وهي نمط برمجة متقدم، وفيه يقسم البرنامج إلى وحدات تسمى الكائنات (Objects)

كل كائن هو حزمة (تعليب) من البيانات (المتغيرات والثوابت) والطرق ووحدات التنظيم وواجهات الاستخدام.

البرمجة الكائنية Object-oriented programming

هي عبارة عن نمط برمجة متقدمة، وفيه يقسم البرنامج إلى وحدات تسمى الكائنات (Objects)

كل كائن عبارة عن حزمة من البيانات والمتغيرات والثوابت والدوال ووحدات التنظيم وواجهات الاستخدام.

ويتم بناء البرنامج بواسطة استخدام الكائنات وربطها مع بعضها البعض

وواجهة البرنامج الخارجية باستخدام هيكلية البرنامج وواجهات الاستخدام الخاصة بكل كائن

ماهو الكائن

كل ماحولك عبارة عن كائن وقد يكون الكائن مرئياً بالنسبة لك مثل السيارة، الطائرة، الضوء

وقد يكون شيئاً لاتستطيع لمسه مثل الصوت، الحساب البنكي

إذن لكل كائن خصائص يتميّز بها و سلوكيات يقوم بها ومن هذه السلوكيات تنتج أحداث وبهذه الثلاث عوامل يتميز كل كائن

  • خصائص Properties : وهي ما نسميه في البرمجة Data
  • سلوكيات Behavior أو وظائف يقوم بها : وهي ما نسميه بلغة البرمجة Methods or Functions
  • أحداث Events : تخص الكائن وتنتج عن سلوكياته وكل كائن (Object) ينتمي لفئة أعلى منه (Class)

 فمثلا التفاح هو كائن وهو ينتمي لفئة الفواكه

والطائرة والسيارة هي كائنات وهي تنتمي للفئة التي هي وسائل النقل

فالبرمجة الكائنية هي طريقة جديدة لتصميم وكتابة البرامج، و الفكرة الرئيسية منها هي ان تقوم بتحويل البرنامج الى اجزاء مختلفة

كل جزء يمثل هدف او عمل معين لنبسطها في بعض النظريات من خلال واقعنا.

“فهنالك قاعدة تقول ان كل شي عبارة عن كائن – Every things is an Object”

فلو اخذناها على لغة جافا java يعني ان كل شئ في لغة جافا عبارة عن كائن مثل (Variables) و(class) وغيرها

اما لو طبقناها على واقعنا يعني كل شئ عبارة عن كائن مثل الهاتف وان لكل كائن له خصائص وافعال مثلاً

الهاتف له خصائص مثل اللون (اصفر- اسود – ازرق) وله افعال مثل الاتصال وامور كثيرة تساعدنا في حياتنا اليومية.

من اللغات التي تعمل بالكائنية

  • ++C
  • #C
  • Java
  • JavaScript
  • Python
  • PHP

الأساسيات الأربعة للبرمجة بالكائنية

البرمجة الكائنية لها أربعة مفاهيم أساسية :

  • التغليف Encapsulation
  • التجريد Abstraction
  • الوراثة Inheritance
  • تعدد الأشكال Polymorphism

التغليف Encapsulation

هو مفهوم البرمجة الموجه للكائنات تربط البيانات والوظائف التي تتعامل مع البيانات معًا ، وتحميها من التدخل الخارجي وإساءة الاستخدام، أدى تغليف البيانات إلى مفهوم OOP المهم لإخفاء البيانات.

إذا كان (Class) لا يسمح باستدعاء التعليمات البرمجية للوصول إلى بيانات الكائن الداخلية

ويسمح بالوصول من خلال (Methods) فقط ، فهذا شكل قوي من أشكال التغليف.

عملية التغليف تشبه تمامًا الحبة داخل شريط الدواء (من أجل حمايتها)، فى البرمجة الكائنية يعمل مبدأ التغليف بطريقة رقمية

لتشكيل حاجز وقائي حول المعلومات التي تفصلها عن بقية الكود + يمكن للمبرمجين

نسخ هذا الكائن عبر أجزاء مختلفة من البرنامج أو البرامج الأخرى.

التجريد Abstraction

قدرة البرنامج على تجاهل بعض واجهات المعلومات المتلاعبة، أي التركيز على المفهوم الأساسي للكائن وهيكليته النظرية

وتجريده من طريقة العمل النهائية والتوجهات الخارجية.

هو امتداد للتغليف لأنه يخفي خصائص وطرق معينة من الكود الخارجي لجعل واجهة الكائنات أبسط.

يستخدم المبرمجون التجريد لعدة أسباب مفيدة، بشكل عام يساعد التجريد في عزل تأثير التغييرات التي تم إجراؤها

على الكود بحيث إذا حدث خطأ ما ، فلن يؤثر التغيير إلا على المتغيرات المعروضة وليس على الكود الخارجي

الوراثة Inheritance

يستطيع الكائن وراثة خصائص كائن معين والزيادة عليها دون أن يتأثر الكائن الأصلي

هذا المبدأ يأتي ليحل لنا مشكلة تكرار الكود البرمجي من خلال (Class) الكثيرة و أيضا هيكلة افضل للكود البرمجي

حين نتحدث عن صناعته بشكل عملي و ليس للتدرب.

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

تعدد الأشكال Polymorphism

بدلاً من استدعاء الإجراءات الفرعية مباشرة، تستطيع البرمجة الشيئية إرسال رسائل،

الإجراء المعين الذي يتم نداؤه نتيجة الرسالة يعتمد على نوع الكائن الذي أُرسل له.

أي أنه باستخدام نفس اسم الاستدعاء يمكن استدعاء إجراءات وطرق مختلفة اعتماداً على نوع الكائن.

يسمح هذا المفهوم للمبرمجين بإعادة تعريف (Method) التي يعمل بها شيء ما عن طريق تغيير كيفية القيام به

أو عن طريق تغيير الأجزاء التي يتم بها.

تسمى شروط تعدد الأشكال (Overriding) & (Overloading)

المصادر

في النهاية هذه مجرد فكرة فقط عن OOP ان كنت تريد الأحتراف عليك التعمق في هذا العالم هذه بعض الكورسات المجانية في اللغة العربية

كورس شرح البرمجة كائنية التوجه من قناة الزيرو ويب سكول بلغة جافا سكربت

Object Oriented Programming With JavaScript

كورس شرح البرمجة كائنية التوجه من قناة جودزيلا بلغة بايثون

Object Oriented Programming With Python 

كورس شرح البرمجة كائنية التوجه من المهندس محمد الدسوقي بلغة جافا

Object Oriented Programming With Java

كورس شرح البرمجة كائنية التوجه من المهندس محمد الدسوقي بلغة ++C

++Object Oriented Programming With C