✅ أولاً: ما هو الكلاس (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 (اختياري لكن مفيد) | |
✅ يمكن إنشاء أكثر من كائن من نفس الكلاس |
✅ أمثلة على استخدام الكلاس في الحياة الواقعية:
كائن | خصائص | دوال |
---|---|---|
طالب | الاسم، العمر، الصف | تسجيل، دراسة |
سيارة | النوع، السنة | تشغيل، إيقاف |
كتاب | العنوان، المؤلف | عرض التفاصيل، الطباعة |
✅ ملاحظات مهمة:
- يمكن تعديل القيم داخل الكائن بعد إنشائه.
- كل كائن يكون مستقل عن الكائن الآخر (مثل كل سيارة لها ماركة وسنة مختلفة).
- الكلاس لا يُنفذ بنفسه، بل نحتاج لإنشاء كائن منه.
- يمكن للكلاس أن يرث (يأخذ) من كلاس آخر — سنتحدث عن ذلك لاحقًا في “الوراثة”.
✅ هل يمكن أن يحتوي الكلاس على أكثر من دالة؟
نعم! الكلاس يمكن أن يحتوي على عدد غير محدود من الخصائص والدوال.
مثال:
class Student {
String name;
int age;
Student(this.name, this.age);
void sayHello() {
print('مرحبًا، اسمي $name');
}
void study() {
print('$name يدرس الآن.');
}
}
Dart✅ خاتمة:
الشيء | الملخص |
---|---|
ما هو الكلاس؟ | قالب لإنشاء كائنات تحتوي على خصائص ودوال. |
لماذا أستخدمه؟ | لتنظيم الكود، وتمثيل الكائنات الواقعية. |
كيف أكتبه؟ | باستخدام class ، وكتابة الخصائص والدوال بداخله. |
هل يمكن إنشاء أكثر من كائن؟ | نعم، يمكن إنشاء عدد غير محدود من الكائنات من نفس الكلاس. |