OOP شو يعني ؟

صورة

البرمجة الكائنية (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 = نفس الوظيفة بطرق مختلفة.