الموضوع 4
الحزم Packages
الحزمة package مجلد يجمع الكلاسات المترابطة، كما تجمع المجلدات ملفاتك في الحاسب.
بعد هذا الدرس ستستطيع أن:
- تعرّف الحزمة package، وتوضّح فائدتها في تنظيم الكلاسات.
- تميّز بين الحزم المدمجة built-in والحزم المعرّفة من المستخدم user-defined.
- تستورد كلاسًا واحدًا أو حزمة كاملة باستخدام import.
- تُنشئ حزمة في NetBeans، وتستخدم كلاسًا من حزمة أخرى.
١لماذا الحزم؟
🏷️ تجنّب تشابه الأسماءلا يمكن حفظ كلاسين بالاسم نفسه في المكان نفسه، لكن يمكن ذلك في حزمتين مختلفتين.
🗂️ تنظيم وصيانةتجميع الكلاسات المترابطة يسهّل العثور عليها وتعديلها.
وتنقسم إلى: حزم مدمجة Built-in من مكتبة Java API، وحزم يعرّفها المستخدم User-defined.
٢الحزم المدمجة والاستيراد import
| الصيغة | المعنى |
|---|---|
import java.util.Scanner; | استيراد كلاس واحد |
import java.util.*; | استيراد كل كلاسات الحزمة |
package pkgpackage;import java.util.Scanner;public class Package { public static void main(String[] args) { Scanner myObj = new Scanner(System.in); System.out.println("Enter username"); String userName = myObj.nextLine(); System.out.println("Username is: " + userName); }}
run:
Enter username
Username is: Ali
BUILD SUCCESSFUL (total time: 0 seconds)
استيراد حزمة كاملة: مثال java.time
حزمة java.time فيها كلاس التاريخ LocalDate والوقت LocalTime وغيرهما؛ نستوردها كاملة بـ *:
package pkgpackage;import java.time.*;public class Package { public static void main(String[] args) { LocalDate date = LocalDate.now(); System.out.println(date); LocalTime time = LocalTime.now(); System.out.println(time); }}
run:
2025-09-09
21:45:40.260899700
BUILD SUCCESSFUL (total time: 0 seconds)
الناتج هو تاريخ ووقت لحظة التشغيل، فيختلف كل مرة.
٣حزم يعرّفها المستخدم
جافا تخزّن الحزم كمجلدات فعلية. في هذا المثال حزمتان: week4 فيها كلاس Modifiers، وmainPackage فيها Main الذي يستورده.
package week4; public class Modifiers { public int week_no; public void printWeek(){ System.out.println("Week number: " + week_no); }}
ملفات المشروع في تبويبات كما في NetBeans. زر التشغيل يجمعها في ملف واحد ليعمل على OneCompiler.
run:
Hello from main class
Week number: 4
BUILD SUCCESSFUL (total time: 0 seconds)
توقّع وتحقّق
أجب قبل أن تنظر إلى الشرح. التصحيح فوري، وإجاباتك تُحفظ.
في import java.util.Scanner; ما الحزمة؟
لاستيراد جميع الكلاسات الموجودة في الحزمة java.util دفعة واحدة، نكتب:
النجمة * تعني جميع كلاسات الحزمة.
أي مما يلي سبب لاستخدام الحزم؟
الخلاصة
- الحزمة مجلد يجمع كلاسات مترابطة.
- مدمجة (Java API) أو يعرّفها المستخدم.
- import للكلاس الواحد أو * للحزمة كاملة.
- أول سطر في الملف: package اسم_الحزمة;