دالة البناء Constructor
دالة خاصة تُستدعى تلقائيًّا لحظة إنشاء الكائن، لتعطي خصائصه قيمها الأولى.
- تعرّف دالة البناء constructor، وتذكر شروط كتابتها.
- تكتب دالة بناء افتراضية وأخرى بمعاملات للكلاس نفسه.
- تستخدم الكلمة this للتمييز بين خاصية الكائن والمعامل.
- تصل إلى خصائص الكائن ودواله باستخدام النقطة، وتتوقّع القيم الافتراضية للخصائص.
١دالة البناء constructor
Book bk1 = new Book();| الشرط | التوضيح |
|---|---|
| الاسم | مطابق لاسم الكلاس |
| النوع الراجع | لا يُكتب أي نوع، ولا حتى void |
| إذا لم تكتبها | كل الكلاسات فيها دالة بناء افتراضية، لكن بلا عمل إضافي |
package library; public class Main { public static void main(String[] args) { Book bk1 = new Book(); }}
٢دالة بناء بمعاملات
تستقبل معاملات تُستخدم لتهيئة خصائص الكائن عند إنشائه: Book bk2 = new Book(2, "Learn Javan", "Fahad", 11.67,237);
٣الوصول إلى خصائص الكلاس
بعد إنشاء الكائن نصل إلى خصائصه بصيغة النقطة (.)، فنقرأ قيمتها أو نعدّلها. وفي NetBeans تظهر قائمة الخصائص تلقائيًّا بعد كتابة bk1.
package library;public class Main { public static void main(String[] args) { Book bk1 = new Book(); System.out.println("id: " + bk1.id); System.out.println("title: " + bk1.title); bk1.id = 1; bk1.title = "Java in 10 days"; bk1.author = "Ali"; bk1.price = 54.99; bk1.pages = 416; System.out.println("id: " + bk1.id); System.out.println("title: " + bk1.title); System.out.println("-------------------"); Book bk2 = new Book(2, "Learn Javan", "Fahad", 11.67,237); System.out.println("id: " + bk2.id); System.out.println("title: " + bk2.title); }}
ملفات المشروع في تبويبات كما في NetBeans. زر التشغيل يجمعها في ملف واحد ليعمل على OneCompiler.
قبل إعطاء bk1 قيمًا طُبعت القيم الافتراضية: 0 للعدد و null للنص.
٤وظائف الكلاس methods
الدوال تمثّل أفعال الكلاس، وتُعرَّف داخله، وتُستدعى عن طريق كائن معيّن فتعمل على خصائصه هو دون غيره. نضيف إلى Book الدالة printBookDetails() ونستدعيها لكل كتاب، وهذا هو التدريب العملي 5 التالي.
توقّع وتحقّق
أجب قبل أن تنظر إلى الشرح. التصحيح فوري، وإجاباتك تُحفظ.
أي رأس صحيح لدالة بناء في الكلاس Book؟
متى تُستدعى دالة البناء؟
ماذا يُطبع لخاصية نصية لم نعطها قيمة؟
في this.id = id; الكلمة this تشير إلى:
الخلاصة
- دالة البناء تهيّئ الكائن وتُستدعى تلقائيًّا مع new.
- اسمها اسم الكلاس، وبلا نوع راجع.
- يمكن أن يكون للكلاس أكثر من دالة بناء.
- نصل للخصائص والدوال بالنقطة، و this.x خاصية الكائن الحالي.