OOP In dart

البرمجة الكائنية التوجه (Object Oriented Programming – OOP) هي أسلوب في البرمجة يساعدك على تنظيم الكود بطريقة تشبه العالم الحقيقي، من خلال إنشاء كائنات (Objects) تحتوي على بيانات (خصائص) وسلوكيات (وظائف أو دوال).

✅ أولاً: ما هي البرمجة الكائنية التوجه (OOP) في لغة Dart؟

في Dart، مثل لغات أخرى مثل Java وC++ وPython، تُستخدم OOP لإنشاء كائنات (Objects) من فئات (Classes).

📦 الفئة (Class):

هي قالب أو مخطط يُستخدم لإنشاء كائنات.
مثال: فئة سيارة تصف الخصائص والسلوكيات العامة لأي سيارة.

🚗 الكائن (Object):

هو نسخة حقيقية من الفئة، يحتوي على بيانات فعلية.
مثال: سيارة اسمها “تويوتا” بلون أحمر.

✅ مثال بسيط من الواقع:

تخيل أنك تصمم برنامج لإدارة الحيوانات في حديقة حيوان.

1. تنشئ Class للحيوان:
class Animal {
  String name;
  int age;

  // Constructor
  Animal(this.name, this.age);

  // Method (سلوك)
  void makeSound() {
    print('$name يصدر صوتًا.');
  }
}
Dart
2. تنشئ Object (كائن):
void main() {
  var lion = Animal('أسد', 5);
  lion.makeSound(); // أسد يصدر صوتًا.
}
Dart
✅ ما هي فوائد OOP في Dart للمبتدئين؟
الميزةالشرح
تنظيم الكودتقسم الكود إلى وحدات (كلاسات) سهلة الإدارة والفهم.
إعادة استخدام الكوديمكن استخدام نفس الفئة (Class) لإنشاء عدة كائنات بدل كتابة كود جديد.
سهولة التطوير والتعديلإذا أردت تعديل سلوك معين، تعدل فقط في الكلاس وليس في كل مكان بالكود.
تقليد الواقعتسهّل عليك تمثيل الكائنات الحقيقية (مثل الطلاب، السيارات، الحيوانات) في الكود.
تقسيم العمليمكن لفريق العمل تقسيم الكلاسات وتطويرها بشكل منفصل بدون تعارض.
✅ مفاهيم أساسية في OOP:
المفهومشرح مبسط
🧱 Classالقالب أو التصميم للكائنات.
🧍 Objectنسخة حقيقية من الكلاس.
⚙️ Methodدالة داخل الكلاس تمثل سلوك.
🧾 Property (Field)خاصية أو معلومة تخص الكائن (مثل الاسم أو العمر).
🏗️ Constructorدالة خاصة تُستخدم لإنشاء الكائنات وتحديد القيم.
🧬 Encapsulationإخفاء التفاصيل الداخلية للكائن وتوفير واجهة بسيطة للتعامل معه.
🔁 Inheritance (الوراثة)إنشاء كلاس جديد يرث الخصائص والسلوك من كلاس آخر.
🧠 Polymorphism (تعدد الأشكال)الكائن يستطيع تنفيذ أكثر من شكل لنفس الوظيفة.
✅ مثال يوضح الوراثة (Inheritance):
class Animal {
  String name;
  Animal(this.name);

  void move() {
    print('$name يتحرك.');
  }
}

class Bird extends Animal {
  Bird(String name) : super(name);

  void fly() {
    print('$name يطير.');
  }
}

void main() {
  var sparrow = Bird('عصفور');
  sparrow.move(); // عصفور يتحرك.
  sparrow.fly();  // عصفور يطير.
}
Dart
✨ تلخيص مبسط:
سؤالالجواب
ما هي OOP؟أسلوب لكتابة البرامج باستخدام الكلاسات والكائنات.
لماذا أستخدمها؟لتنظيم الكود، تسهيل الفهم، وتكرار الاستخدام.
هل ضرورية؟نعم، في المشاريع المتوسطة والكبيرة ضرورية جدًا.