الحزم في لغة جافا packages – الجزء 1

تحتل الحزم packages بداية وأعلى الملفات المصدرية في لغة جافا، فعندما تبدأ بقراءة ملف الشفرة المصدرية تطالع عبارات استيراد الحزم packages المستخدمة في هذا الملف.
هذه العبارات القصيرة المتعلقة بالحزم تعطيك فكرة أولية عن درجة تعقيد البرنامج ونوع العمليات الموجودة بملف الشفرة المصدرية.
ما هي هذه الحزم packages، من الذي طوّرها وهل تستطيع أن تطور حزماً بلغة جافا؟!
لهذه التدوينة تتمة هنا الحزم في لغة جافا packages – الجزء 2.
هل هناك أي فائدة من استخدام الحزم في برنامجك؟
قبل أن نتحدث عن ماهيّة الحزمة نفسها دعني أعرّفك بأهميتها في برامجك التي تكتبها بلغة جافا.
(1) توفّر الحزم مجالاً للتسمية
أليس غريباً -بل شبه الممنوع- أن تجد أخوين لهم نفس الاسم؟! بالتأكيد غريب، ولكن لماذا؟ لأن الأخوين في نفس مجال التسمية namespace.
يُسمى أعضاء مجال التسمية الواحد بأسماء مميزة ومختلفة عن بعضهم ومن الأفضل أن تكون معبرة عن كل عضو منهم بحيث يسهل تذكرها ومناداتها دون وجود خلط وكذلك معرفة العضو من خلال اسمه.
أعضاء مجال التسمية في لغة جافا مثل الواجهات interfaces و الأصناف classes يمتلكون أسماءً متميزة ما داموا في نفس الحزمة.
كيف تختار أسماء المعرّفات في جافا للفئات والمتغيرات والدوال
(2) المساعدة في خلق حدود للوصول إلى أعضائها
بما أن الحزمة توفر مجالاً للتسمية فإنها بذلك أيضاً توفر هيكلاً يستخدم في تحديد الوصول إلى هؤلاء الأعضاء.
فبعض الأصناف مثلاً لم تصمم حتى يتم الوصول إليها من قبل جميع الأصناف الأخرى للمحافظة على تصميم البرنامج وهكذا.
(3) المساعدة على توزيع البرنامج
بعد أن تكمل تطوير برنامج باستخدام بيئة التطوير المتكاملة IDE أياً كانت فإن الخطوة التالية تكون نشر البرنامج وتوزيعه على المستخدمين.
تلعب الحزم دوراً محورياً في توزيع البرنامج كما سترى ذلك لاحقاً في هذه السلسلة.
بعد أن تعرف ما هي الحزمة، كيف تعرّفها؟
كما ذكرتُ لك سابقاً، الحزمة هي مجال للتسمية كما أنها كذلك طريقة تنظيمية لملفات برنامج الجافا.
الحزمة هي مجموعة من الأصناف ذات العلاقة.
عندما تنشئ برنامجك لأول مرة ستجد حزمة افتراضية تحمل علامة المربع الأصفر الذي يشبه الحزمة/الطرد/الصندوق وبداخله صنفٌ واحدٌ وهو الصنف الأساسي Main Class.
أراحك برنامج النتبينز من إنشاء الحزمة في كل مرة تنشئ مشروعاً جديداً. ولكن أثناء عملك في المشروع من الطبيعي أن تحتاج إلى إنشاء حزم أخرى تحتوي على مجموعة من الأصناف ذات العلاقة.
خطوات إنشاء الحزمة في برنامج نتبينز
(1)

(2)

(3)

قليلاً عن تسمية الحزم
كما رأيت أعلاه، من الممكن أن تنشئ عدداً من الحزم المختلفة وفقاً لما تحتاجه في برنامجك.
ولتلافي التداخل والاختلاط بين تسميات الحزم هناك بعض الأمور البسيطة في تنفيذها والمهمة في أثرها والتي يجبُ أن تراعيها في تسمية الحزم.
- يجب أن يكون اسم الحزمة مميزاً غير متكرر: في جافا يُمنع تكرار اسم الحزمة ومنطقياً إذا احتجت لتكرار اسم الحزمة فهذا يعني أنه باستطاعتك استخدام الحزمة المنشأة سابقاً.
- تسمية الحزمة الرئيسية تكون بعكس اسم النطاق، مثلاً عند تطوير لموقع oolom.com تُسمى الحزمة الرئيسية com.oolom.
يجبُ أن تنتبه جيّداً إلى اسم الحزمة التي يوجد بداخلها الصنف، لأنها ستصبح المعرّفة له. مثلاً في الصورة التالية

بالرغم من رؤيتك للصنف Accounting لكن لا تستطيع استخدامه بهذا الاسم فقط. يجبُ أن تستصحب اسم الحزمة التي يوجد بداخلها فيصبح accounting.Accounting.
واصل القراءة عن الحزم في لغة جافا الحزم في جافا – الجزء 2
وللتطبيق العملي يمكنك الاطلاع علي كيف تقرأ من وتكتب في ملف نصي باستخدام java.io و java.nio.