قبل أن نبدأ

بعد أن تعرفنا في القسم السابق على أن البرمجة كائنية التوجه (Object-Oriented Programming) هي أحد النماذج البرمجية (Programming Paradigms)، حان الوقت لنتعلم كيف نطبق هذا المفهوم عمليًا.

لا تحاول حفظ الكود أو تفاصيله في هذه المرحلة، فالهدف هو فهم الفكرة العامة. عندما تستوعب المفهوم، ستصبح كتابة الكود أمرًا طبيعيًا مع الممارسة.

تشغيل الأمثلة

ابتداءً من هذا القسم ستحتاج إلى تجربة بعض الأمثلة البرمجية بنفسك.

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

يكفي نسخ الكود وتشغيله، ثم ملاحظة النتيجة. ركز على فهم ما يحدث أكثر من التركيز على كتابة الكود من الذاكرة.

تذكر الفكرة الأساسية

قبل أن نبدأ، تذكر دائمًا أن Class هو مجرد نموذج (Blueprint)، ومن هذا النموذج يمكننا إنشاء كائنات (Objects).

في الدرس السابق استخدمنا المثال التالي:

// Model
class Car {
constructor() {
console.log("This is car model");
}
}
// Object
const car = new Car();

أنشأنا نموذجًا باسم Car، ثم أنشأنا كائنًا منه باستخدام new.

إضافة صفات إلى النموذج

حتى الآن، جميع السيارات التي ننشئها ستكون متشابهة تمامًا، لأنها لا تحتوي على أي بيانات تميزها.

لذلك يمكننا إضافة صفات (Attributes) إلى النموذج، بحيث يمتلك كل كائن بياناته الخاصة.

// Model
class Car {
constructor(model) {
this.model = model;
console.log("This is car model " + model);
}
}
// Object
const car = new Car(2020);

في هذا المثال، أصبح النموذج يستقبل قيمة اسمها model، ثم يخزنها داخل الكائن.

وبذلك يمكننا إنشاء عدة كائنات من النموذج نفسه، مع إعطاء كل كائن قيمة مختلفة.

على سبيل المثال:

const car1 = new Car(2020);
const car2 = new Car(2023);
const car3 = new Car(2025);

جميع هذه الكائنات أُنشئت من النموذج نفسه، لكن لكل منها بيانات مختلفة.

لماذا نستخدم الصفات؟

الصفات (Attributes) تسمح لنا بجعل الكائنات أكثر مرونة.

فبدلاً من إنشاء نموذج جديد لكل سيارة، نكتفي بإنشاء نموذج واحد، ثم نحدد خصائص كل كائن عند إنشائه.

وهذه إحدى أهم مزايا البرمجة كائنية التوجه.

ماذا يجب أن تتذكر؟

  • Class هو نموذج (Blueprint) لإنشاء الكائنات.
  • Object هو نسخة يتم إنشاؤها من هذا النموذج.
  • يمكن للنموذج أن يحتوي على صفات (Attributes) تميز كل كائن عن الآخر.
  • فهم الفكرة أهم بكثير من حفظ الكود، فالتطبيق سيصبح أسهل مع الممارسة.