تدريب عملي
التدريب العملي 5: مشروع المكتبة library
كلاس Book بدالتي بناء، وكلاس Main ينشئ كتابين بطريقتين.
من الدرس 3. دالة البناء Constructor · كل التدريبات
١نص المسألة
أنشئ مشروع مكتبة library فيه كلاس Book بخصائص الكتاب (id و title و author و price و pages)، ودالتي بناء: افتراضية، وأخرى تستقبل جميع القيم. أضف دالة printBookDetails تطبع بيانات الكتاب. في Main أنشئ كتابين بالطريقتين واطبع بياناتهما.
٢الخوارزمية المقترحة
- أنشئ كلاس Book وعرّف فيه الخصائص الخمس.
- اكتب دالة البناء الافتراضية Book() بلا عمل.
- اكتب دالة البناء Book(id, title, author, price, pages) وأسند القيم باستخدام this.
- اكتب الدالة printBookDetails تطبع الخصائص الخمس.
- في Main: أنشئ bk1 بالدالة الافتراضية وأعطه id و title فقط.
- أنشئ bk2 بدالة البناء ذات المعاملات.
- استدعِ printBookDetails للكائنين بينهما سطر من الشرطات.
٣خطوات التطبيق
في NetBeans
- أنشئ مشروعًا باسم library، مع تفعيل Create Main Class باسم library.Main.
- انقر بالزر الأيمن على الحزمة library ← New ← Java Class، واسمه Book.
- اكتب كود Book ثم كود Main، ونفّذ.
في OneCompiler
- افتح OneCompiler من زر «▶ شغّل المشروع» أسفل الحل، أو من موقع onecompiler.com/java.
- في OneCompiler تُكتب كل الكلاسات في ملف واحد Main.java؛ زر التشغيل يجمعها لك تلقائيًّا.
- إذا كان البرنامج يقرأ من لوحة المفاتيح، فاكتب المدخلات في خانة STDIN التي تظهر تحت الكود في محرّر OneCompiler، ثم اضغط Run.
٤المخرجات المطلوبة
نفّذ برنامجك، ويجب أن تظهر المخرجات التالية:
run:
Id: 1
Title: Java in 10 days
Author: null
Price: 0.0
Pages: 0
----------
Id: 2
Title: Learn Javan
Author: Fahad
Price: 11.67
Pages: 237
BUILD SUCCESSFUL (total time: 0 seconds)
٥الحل المقترح
حاول بنفسك أولًا، ثم قارن حلّك بالحل المقترح (كود التدريب من مذكرة العملي):
👁 اعرض الحل المقترح
package library;public class Book { //Attributes | Fields | Data Members الخصائص int id; String title; String author; double price; int pages; public Book() { } public Book(int id, String title, String author, double price, int pages) { this.id = id; this.title = title; this.author = author; this.price = price; this.pages = pages; } public void printBookDetails(){ System.out.println("Id: " + this.id); System.out.println("Title: " + this.title); System.out.println("Author: " + this.author); System.out.println("Price: " + this.price); System.out.println("Pages: " + this.pages); }}
ملفات المشروع في تبويبات كما في NetBeans. زر التشغيل يجمعها في ملف واحد ليعمل على OneCompiler.
run:
Id: 1
Title: Java in 10 days
Author: null
Price: 0.0
Pages: 0
----------
Id: 2
Title: Learn Javan
Author: Fahad
Price: 11.67
Pages: 237
BUILD SUCCESSFUL (total time: 0 seconds)
أسئلة المناقشة
أسئلة مناقشة على التدريب 5. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».
1السؤال الأول: اختر الإجابة الصحيحة
1) ما الغرض من الدالة printBookDetails في الكلاس Book؟
2) ماذا يحدث إذا لم نُعرّف أي constructor في الكلاس Book؟
3) أي عبارة صحيحة عن الـ constructor الذي يستقبل معاملات في الكلاس Book؟
4) عند تنفيذ السطر التالي : ما الذي يحدث؟
Book bk1 = new Book();5) عند استدعاء مباشرة بعد الإنشاء دون تعيين أي قيم، ما القيم التي ستُطبع؟
bk1.printBookDetails();6) ما الهدف من استخدام this داخل الكلاس Book؟
7) ما الفرق بين الكائنين bk1 و bk2 في الكود؟
8) ماذا تطبع الجملة:
System.out.println(bk2.title);أجب عن الأسئلة ثم اضغط «صحّح ورقتي».