Home
Module 1
OOP Fundamentals

Classes & Objects

الـ Classes والـ Objects - أساس البرمجة الكائنية

🎯إيه هي البرمجة الكائنية OOP؟

📖 التشبيه البسيط

تخيل إنك مصنع عربيات:

  • • عندك رسمة هندسية (Blueprint) للعربية ← ده اسمه Class
  • • لما تصنع عربية حقيقية من الرسمة دي ← ده اسمه Object
  • • كل عربية ليها لون ونوع وموديل ← دول اسمهم Properties
  • • العربية بتقدر تمشي وتقف وتزمر ← دول اسمهم Methods

✅ ليه OOP مهم؟

  • • كود منظم ومرتب
  • • سهل تعيد استخدامه
  • • سهل الصيانة والتعديل
  • • بيمثل العالم الحقيقي

📌 الأركان الأربعة

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

🏗️ الفرق بين Class و Object

📐

Class

الرسمة الهندسية / Blueprint

Person- name: string- age: number+ greet(): void
الـ Class زي القالب - بيوصف الشكل بس مش موجود فعلياً
🧑

Object

الحاجة الحقيقية / Instance

person1name: "أحمد"age: 25person2name: "سارة"age: 30person3name: "محمد"age: 22
الـ Objects هي النسخ الحقيقية - كل واحد ليه بياناته الخاصة

🔧الـ Constructor - باني الكائنات

🏭 إيه هو الـ Constructor؟

الـ Constructor هو دالة خاصة بتتنفذ تلقائياً لما تعمل Object جديد.

فكر فيه كـ "ماكينة التجميع" في المصنع - بتاخد المواد الخام (الـ parameters) وتطلعلك المنتج النهائي (الـ Object).

person.ts
class Person {
  // Properties (الخصائص)
  name: string;
  age: number;

  // Constructor (الباني)
  constructor(name: string, age: number) {
    this.name = name;  // حفظ الاسم
    this.age = age;    // حفظ العمر
  }

  // Method (دالة)
  greet(): string {
    return `أهلاً، أنا ${this.name}`;
  }
}

// إنشاء Objects
const ahmed = new Person("أحمد", 25);
const sara = new Person("سارة", 30);

📖 شرح الكود خطوة بخطوة:

📦 تعريف الـ Properties

عرّفنا إن كل Person هيكون عنده name (نص) و age (رقم)

🏗️ الـ Constructor

لما نعمل new Person()، الـ constructor بياخد الـ name والـ age ويحفظهم في الـ Object

⚡ الـ Method

الـ greet() هي function بترجع رسالة تحية باسم الشخص

✨ إنشاء Objects

كل new Person() بيعمل Object جديد ببياناته الخاصة

🎮جرب بنفسك - إنشاء Objects

أدخل البيانات:

const person1 = new Person("أحمد", 25);

الـ Objects المُنشأة (0):

📦

مفيش Objects لسه - اعمل واحد!

📝 ملخص سريع

📐

Class

القالب أو الرسمة الهندسية

🧩

Object

النسخة الحقيقية من الـ Class

📦

Properties

البيانات والخصائص

Methods

الدوال والسلوكيات