
البرمجة الكائنية (OOP) البرمجة الكائنية هي أسلوب برمجة يعتمد على الفئات (Classes) و الكائنات (Objects).
الفكرة ببساطة: المبرمج ينظم البيانات والسلوكيات داخل قالب يسمى Class، ثم ينشئ منه كائنات متعددة (Objects) تتفاعل مع بعضها لتشكيل برنامج كامل.
لغات كثيرة تعتمد هذا الأسلوب مثل: C++، Java، Python وغيرها.
الأساسيات الأربعة في البرمجة الكائنية (OOP)

التغليف (Encapsulation) -
ربط البيانات مع الوظائف التي تتعامل معها داخل الكائن. -
البيانات الداخلية تكون محمية. -
الوصول يتم فقط عبر methods محددة. -
مثال: في Java نستخدم private للبيانات وpublic للطرق.
التجريد (Abstraction) -
إخفاء التفاصيل المعقدة وإظهار واجهة بسيطة للتعامل مع الكائن. -
يجعل الكود أسهل في الاستخدام والصيانة. -
يحافظ على الأمان بعرض أجزاء محددة فقط. -
مثال: Interface أو Abstract Class.
الوراثة (Inheritance) -
إعادة استخدام الكود عبر توريث الخصائص والوظائف من كائن رئيسي (Superclass) إلى كائنات فرعية (Subclass). -
يقلل التكرار. -
يسمح بإضافة خصائص جديدة للفئات الفرعية بجانب ما ورثته من الفئة الرئيسية.
تعدد الأشكال (Polymorphism) -
إمكانية استخدام نفس الدالة أو الوظيفة بطرق مختلفة حسب السياق. -
مثال عملي: -
دالة اسمها draw(). -
لو استدعيتها على كائن دائرة → ترسم دائرة. -
لو استدعيتها على كائن مربع → ترسم مربع. -
نفس الاسم لكن النتيجة تختلف حسب نوع الكائن. -
الأنواع الأساسية: -
Overloading: نفس اسم الدالة لكن بمعاملات مختلفة. -
Overriding: الفئة الفرعية (Subclass) تعيد تعريف دالة موجودة في الفئة الرئيسية (Superclass).
لماذا نستخدم OOP؟ -
يجعل الكود منظمًا وسهل الصيانة. -
يعزز إعادة الاستخدام (Reuse). -
يتبع مبدأ DRY (لا تكرر نفسك). -
يحمي البيانات من الوصول غير المرغوب فيه عبر التغليف والتجريد.
فوائد البرمجة الكائنية (OOP) -
إعادة استخدام الكود (Code Reusability) → يقلل التكرار ويجعل التطوير أسرع. -
سهولة الصيانة (Maintainability) → أي تعديل أو إصلاح يكون أسهل لأنه محصور داخل الكائن نفسه. -
الأمان (Security) → إخفاء البيانات الداخلية ومنع الوصول المباشر إليها. -
المرونة (Flexibility) → نفس الوظيفة يمكن أن تعمل بطرق مختلفة حسب السياق. -
تنظيم الكود (Organization) → تقسيم البرنامج إلى كائنات واضحة يسهل التعاون بين المبرمجين. -
قابلية التوسع (Scalability) → إضافة ميزات جديدة دون التأثير الكبير على باقي النظام.
ملخص سريع -

كل شيء في OOP هو كائن (Object). -
Class = مخطط للكائنات. -
Object = نسخة من الـ Class. -
Attributes = البيانات. -
Methods = السلوكيات. -
Inheritance = مشاركة الخصائص بين الفئات. -
Encapsulation = إخفاء البيانات. -
Abstraction = تبسيط التعقيد. -
Polymorphism = نفس الوظيفة بطرق مختلفة.