الدرس 16: إنشاء الكائنات باستخدام المنشئات
الـ منشئ (Constructor) هو نوع خاص من الدوال يُستخدم لتهيئة الكائن فور تخصيص الذاكرة له. يعمل المنشئ مرة واحدة فقط عند إنشاء الكائن.
الخصائص الرئيسية للمنشئات
- يجب أن يكون اسم المنشئ مطابقاً تماماً لاسم الفئة.
- ليس له نوع إرجاع (ولا حتى
void). - يتم استدعاؤه باستخدام الكلمة المفتاحية
new.
1. المنشئ الافتراضي (Default Constructor)
إذا لم تقم بتعريف أي منشئ بشكل صريح، فإن Java توفر منشئاً عاماً بدون معاملات تلقائياً.
java public class Book { String title;
// توفر Java هذا تلقائياً إذا لم نكتبه:
// public Book() { }
}
Book b = new Book(); // يستدعي المنشئ الافتراضي
2. المنشئات ذات المعلمات (Parameterized Constructors)
تُستخدم لإجبار المستدعي على تقديم قيم أولية لحالة الكائن.
java public class Book { String title; int pages;
// منشئ ذو معاملات
public Book(String initialTitle, int numPages) {
title = initialTitle;
pages = numPages;
System.out.println("New book initialized: " + title);
}
}
// يجب تمرير الوسائط عند إنشاء الكائن Book harryPotter = new Book("Harry Potter", 300); // Book emptyBook = new Book(); // خطأ! المنشئ الافتراضي لم يعد موجوداً.
3. زيادة تحميل المنشئ (Constructor Overloading)
يمكن أن تحتوي الفئة على منشئات متعددة، طالما أن لكل منها قائمة معاملات فريدة. هذا مفيد لتوفير مرونة في إنشاء الكائنات.
java public class Book { // 1. منشئ بالعنوان وعدد الصفحات public Book(String title, int pages) { ... }
// 2. منشئ بالعنوان فقط
public Book(String title) {
this(title, 0); // يستدعي المنشئ الأول (Constructor chaining)
}
}