البرمجة الكائنية التوجه (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 يصدر صوتًا.');
}
}
Dart2. تنشئ 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؟ | أسلوب لكتابة البرامج باستخدام الكلاسات والكائنات. |
لماذا أستخدمها؟ | لتنظيم الكود، تسهيل الفهم، وتكرار الاستخدام. |
هل ضرورية؟ | نعم، في المشاريع المتوسطة والكبيرة ضرورية جدًا. |