Class In OOP In dart

✅ أولاً: ما هو الكلاس (Class)؟

الكلاس (Class) هو قالب أو نموذج (Blueprint) يُستخدم لإنشاء كائنات (Objects) في البرمجة الكائنية التوجه (OOP).

يمكننا تشبيه الـ Class كأنه تصميم لبيت، بينما الـ Object هو البيت الحقيقي المبني من التصميم.

✅ الهدف من الكلاس:
الهدفالشرح
✅ تنظيم الكوديجمع البيانات (الخصائص) والدوال (الوظائف) المرتبطة بشيء معين في مكان واحد.
✅ إنشاء كائنات متعددةيمكنك إنشاء نسخ مختلفة من الكلاس تمثل كائنات واقعية.
✅ تسهيل التطويريُسهل تعديل الخصائص أو الوظائف في مكان مركزي واحد.
✅ يدعم OOPالكلاس هو أساس البرمجة الكائنية التي تُستخدم في بناء التطبيقات الكبيرة والمعقدة.
✅ تركيب الكلاس في Dart:
class Car {
  // الخصائص (Properties)
  String brand = '';
  int year = 0;

  // الدوال (Methods)
  void start() {
    print('$brand تعمل الآن 🚗');
  }
}
Dart
✅ إنشاء كائن من الكلاس (Object):
void main() {
  Car myCar = Car(); // إنشاء كائن
  myCar.brand = 'Toyota'; // ضبط القيم
  myCar.year = 2022;

  print(myCar.brand); // Toyota
  myCar.start(); // Toyota تعمل الآن 🚗
}
Dart
✅ مكونات الكلاس الرئيسية:
المكونالشرح
الخصائص (Properties / Fields)متغيرات تُعبّر عن بيانات الكائن (مثل الاسم، النوع، السنة).
الدوال (Methods)وظائف يقوم بها الكائن (مثل التشغيل، الطباعة، الحساب).
الباني (Constructor)دالة خاصة تُستخدم لإنشاء الكائن وتحديد القيم الأولية مباشرة.
✅ استخدام Constructor (الباني):

بدون Constructor:

Car car = Car();
car.brand = 'BMW';
car.year = 2023;
Dart

مع Constructor:

class Car {
  String brand;
  int year;

  // Constructor
  Car(this.brand, this.year);

  void start() {
    print('$brand تعمل منذ $year');
  }
}

void main() {
  Car car = Car('BMW', 2023); // تمرير القيم مباشرة
  car.start(); // BMW تعمل منذ 2023
}
Dart
✅ قواعد كتابة الكلاسات في Dart:
القاعدةالشرح
✅ يبدأ الكلاس بالكلمة المفتاحية class
✅ اسم الكلاس يبدأ بحرف كبير (حسب تقاليد Dart)
✅ الكود داخل الكلاس يكون بين {}
✅ الخصائص تُكتب أولاً، ثم الدوال
✅ يمكن كتابة Constructor (اختياري لكن مفيد)
✅ يمكن إنشاء أكثر من كائن من نفس الكلاس
✅ أمثلة على استخدام الكلاس في الحياة الواقعية:
كائنخصائصدوال
طالبالاسم، العمر، الصفتسجيل، دراسة
سيارةالنوع، السنةتشغيل، إيقاف
كتابالعنوان، المؤلفعرض التفاصيل، الطباعة
✅ ملاحظات مهمة:
  1. يمكن تعديل القيم داخل الكائن بعد إنشائه.
  2. كل كائن يكون مستقل عن الكائن الآخر (مثل كل سيارة لها ماركة وسنة مختلفة).
  3. الكلاس لا يُنفذ بنفسه، بل نحتاج لإنشاء كائن منه.
  4. يمكن للكلاس أن يرث (يأخذ) من كلاس آخر — سنتحدث عن ذلك لاحقًا في “الوراثة”.
✅ هل يمكن أن يحتوي الكلاس على أكثر من دالة؟

نعم! الكلاس يمكن أن يحتوي على عدد غير محدود من الخصائص والدوال.

مثال:

class Student {
  String name;
  int age;

  Student(this.name, this.age);

  void sayHello() {
    print('مرحبًا، اسمي $name');
  }

  void study() {
    print('$name يدرس الآن.');
  }
}
Dart
✅ خاتمة:
الشيءالملخص
ما هو الكلاس؟قالب لإنشاء كائنات تحتوي على خصائص ودوال.
لماذا أستخدمه؟لتنظيم الكود، وتمثيل الكائنات الواقعية.
كيف أكتبه؟باستخدام class، وكتابة الخصائص والدوال بداخله.
هل يمكن إنشاء أكثر من كائن؟نعم، يمكن إنشاء عدد غير محدود من الكائنات من نفس الكلاس.