الحزم في Java وكيفية استخدامها؟
نشرت: 2022-04-18تُستخدم الحزم في Java لتجميع الفئات والواجهات والحزم الفرعية ذات الصلة. نستخدم حزم Java لتجنب تعارض التسمية حيث يمكن أن يكون هناك فئتان بنفس الاسم في حزمتين مختلفتين. علاوة على ذلك ، يصبح البحث وتحديد موقع واستخدام الواجهات والفئات والتعليقات التوضيحية والتعداد أسهل مع حزم Java.
يتضمن استخدام لغة برمجة Java لكتابة البرامج العديد من الفئات الفردية ، ومن المنطقي فقط تنظيم الفئات والواجهات ذات الصلة في حزم. بطريقة ما ، يمكنك مقارنة حزم Java بالمجلدات الموجودة في جهاز الكمبيوتر الذي نستخدمه لتنظيم الملفات المختلفة والحفاظ على عملنا خاليًا من الفوضى.
سيناقش هذا الدليل الأنواع المختلفة للحزم في Java وكيفية استخدامها.
أنواع الحزم في Java
يتم تقسيم الحزم في Java إلى فئات بناءً على ما إذا كان المستخدم يعرفها أم لا. نوعا حزم جافا هما:
- الحزم المدمجة
- الحزم المعرفة من قبل المستخدم
1. الحزم المضمنة
تأتي حزم Java المحددة مسبقًا أو المضمنة كجزء من Java Development Kit (JDK) وتتكون من العديد من الفئات والواجهات المحددة مسبقًا والتي تعد جزءًا من Java APIs. بعض الحزم المضمنة شائعة الاستخدام في Java هي كما يلي:
- java.io: يحتوي على فئات لدعم عمليات الإدخال / الإخراج.
- java.lang: يتم استيراد هذه الحزمة المضمنة تلقائيًا وتحتوي على فئات دعم اللغة.
- java.util: يحتوي على فئات الأدوات المساعدة لتنفيذ هياكل البيانات مثل القاموس والدعم ، والقائمة المرتبطة ، وعمليات التاريخ والوقت ، إلخ .
- java.net: يحتوي على الفئات التي تدعم عمليات الشبكة.
يتعين علينا استخدام بيان الاستيراد لاستيراد أي حزم Java مضمنة واستخدام الفئات التي تحتوي عليها.
مثال بسيط لإظهار استخدام فئة ArrayList لحزمة Java.util كما يلي:
مثال على الحزمة ؛
استيراد java.util.ArrayList ؛
فئة BuiltInPackage {
العامة الثابتة الفراغ الرئيسي (سلسلة [] args) {
ArrayList <Integer> myList = new ArrayList <> (3)؛
myList.add (3) ،
myList.add (2) ،
myList.add (1) ،
System.out.println ("تحتوي القائمة على العناصر" + myList)؛
}
}
انتاج:
تحتوي القائمة على العناصر: [3 ، 2 ، 1]
في المثال أعلاه من Java.util.ArrayList ، تعد Java حزمة المستوى الأعلى ، و util عبارة عن حزمة فرعية ، و ArrayList هي فئة موجودة في الحزمة الفرعية use.
استيراد حزم في جافا
كما هو موضح في المثال السابق ، تحتوي Java على بيان استيراد يتيح لنا استيراد حزمة كاملة أو استخدام واجهات وفئات معينة فقط محددة في الحزمة.
الصيغة العامة لبيان الاستيراد هي:
- استيراد package.name.ClassName ؛ // يستورد فئة معينة فقط
- import package.name. * // يستورد الحزمة بأكملها
على سبيل المثال ، استيراد java.util.Date ؛ يستورد فئة التاريخ فقط أثناء استيراد java.io. * ؛ يستورد كل شيء تحتويه حزمة java.io.
ومع ذلك ، فإن عبارة الاستيراد اختيارية في Java ، وإذا أردنا استخدام الفئة أو الواجهة من حزمة معينة ، فيمكننا استخدام اسمها المؤهل بالكامل على النحو التالي:
فئة MyClass تنفذ java.util.Date {
//هيئة
}
2. الحزم المعرفة من قبل المستخدم
كما يتضح من الاسم ، يتم إنشاء الحزم المعرفة من قبل المستخدم لتجميع الفئات والواجهات والحزم الفرعية.
إنشاء حزمة معرّفة من قبل المستخدم
لإنشاء حزمة معرّفة من قبل المستخدم في Java ، سنختار اسمًا لحزمتنا ونستخدم الأمر package على أنه عبارة البداية في ملف Java المصدر. كمثال ، سننشئ حزمة باسم ExamplePackage باستخدام العبارة التالية:
حزمة ExamplePackage ؛
يحدد بيان الحزمة الحزمة التي ستنتمي إليها الفئات التي نحددها. إذا لم نستخدم تعليمة الحزمة ، فسيتم وضع أسماء الفئات في الحزمة الافتراضية في Java التي ليس لها اسم.
تعلم دورات تطوير البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.
تكوين فئة في حزمة Java
بمجرد إنشاء الحزمة ، فإن الخطوة التالية هي إنشاء فئة داخل الحزمة. لهذا ، سنعلن عن اسم الحزمة في البيان الأول للبرنامج ، متبوعًا بإدراج الفئة كجزء من الحزمة.
يوجد أدناه برنامج بسيط لإظهار كيفية إنشاء فصل دراسي في حزمة Java. في المثال المعطى ، نقوم بإنشاء فئة احسب داخل الحزمة ExamplePackage.
حزمة ExamplePackage ؛
الطبقة العامة احسب {
إضافة عامة (int p، int q) {
العودة p + q ؛
}
العامة الثابتة الفراغ الرئيسي (سلاسل سلسلة []) {
احسب obj = new Calculate () ؛
System.out.println (obj.add (70 ، 12)) ؛
}
}
الخرج: 82
يخزن Java الحزم في دلائل نظام الملفات. لذلك ، سيتم حفظ البرنامج أعلاه في ملف باسم Calculate.java وتخزينه في الدليل المسمى ExamplePackage. عندما يتم تجميع الملف ، ستقوم Java بإنشاء ملف ".class" وتخزينه في دليل ExamplePackage.
الآن ، يمكنك استخدام حزمة ExamplePackage في برنامج آخر. إليك الطريقة:
استيراد ExamplePackage.Calculate ؛
فئة عامة تجريبي {
العامة الثابتة الفراغ الرئيسي (سلاسل سلسلة []) {
احسب obj = new Calculate () ؛
System.out.println (obj.add (200 ، 523)) ؛
}
}
الخرج: 723
في المثال أعلاه ، قمنا باستيراد الحزمة ExamplePackage لاستخدام الفئة Calculate. استيراد الحزمة كـ ExamplePackage.Calculate يستورد فقط فئة الحساب. ومع ذلك ، إذا كان لديك أكثر من فئة واحدة داخل حزمة ExamplePackage ، فيمكنك استخدام جميع فئات الحزمة باستخدام عبارة الاستيراد التالية:
استيراد ExamplePackage. * ؛
إنشاء فئة داخل حزمة أثناء استيراد حزمة أخرى
لإنشاء فئة داخل حزمة أثناء استيراد حزمة أخرى ، سنبدأ بإعلان اسم الحزمة ثم استيراد الحزمة الأخرى. يوضح المثال التالي نفس الشيء:
حزمة أخرى // التصريح عن طرد
استيراد ExamplePackage.Calculate ؛ // استيراد حزمة
مثال فئة عامة {
العامة الثابتة الفراغ الرئيسي (سلاسل سلسلة []) {
احسب obj = new Calculate () ؛
System.out.println (obj.add (300 ، 700)) ؛
}
}
الخرج: 1000
في المثال أعلاه ، نعلن عن الحزمة OtherPackage ، ونستورد الفئة احسب من الحزمة ExamplePackage ، ثم ننشئ الفئة مثال.
استيراد فئة باستخدام اسم مؤهل بالكامل
يمكننا تجنب بيان الاستيراد باستخدام اسم مؤهل بالكامل. يؤدي استخدام اسم مؤهل بالكامل إلى إتاحة الوصول إلى الفئة المصرح بها من الحزمة فقط. لكننا نحتاج إلى استخدام اسم مؤهل بالكامل في كل مرة نصل فيها إلى الفصل أو الواجهة. يكون استيراد فئة باستخدام اسم مؤهل بالكامل مفيدًا عندما يكون للحزمتين نفس اسم الفئة.
المثال التالي يوضح نفس الشيء:
1. Calculate.java
حزمة ExamplePackage ؛
الطبقة العامة احسب {
إضافة int العامة (int x، int y) {
إرجاع x + y ؛
}
العامة الثابتة الفراغ الرئيسي (سلاسل سلسلة []) {
احسب obj = new Calculate () ؛
System.out.println (obj.add (20 ، 50)) ؛
}
}
2. Demo.java
حزمة أخرى // التصريح عن طرد
فئة عامة تجريبي {
العامة الثابتة الفراغ الرئيسي (سلاسل سلسلة []) {
ExamplePackage.Calculate obj = new ExamplePackage.Calculate ()؛ // استخدام اسم مؤهل بالكامل بدلاً من الاستيراد
System.out.println (obj.add (200 ، 100)) ؛
}
}
الخرج: 300
في المثال أدناه ، استخدمنا الاسم المؤهل بالكامل ExamplePackage.Calculate لإنشاء كائن منه بدلاً من استيراد الحزمة.
3. الحزم الفرعية في Java
الآن بعد أن أصبح لدينا فكرة عن حزم Java وكيفية إنشائها ، دعنا نفهم مفهوم الحزم الفرعية في Java.
الحزمة الفرعية هي حزمة داخل حزمة أخرى وتستخدم لتصنيف الحزمة بشكل أكبر. بمعنى آخر ، إذا قمنا بإنشاء حزمة تتضاعف داخل حزمة ExamplePackage ، فإن الضرب هو الحزمة الفرعية. وبالتالي ، إذا أردنا إنشاء فئة ضمن هذه الحزمة الفرعية ، يجب أن تحتوي الحزمة الفرعية على تصريح في البداية.
يوضح البرنامج التالي مفهوم حزمة Java الفرعية:
حزمة ExamplePackage.multiply ؛ // التصريح عن الحزمة الفرعية
الضرب في الطبقة العامة {
المنتج int (int p، int q) {
العودة p * q ؛
}
}
الآن ، إذا أردنا استخدام فئة الضرب ، فيمكننا إما:
- استيرادها باستخدام العبارة import ExamplePackage.multiply ؛ أو
- استخدام اسم مؤهل بالكامل مثل ExamplePackage.multiply.Multiplication obj = new ExamplePackage.multiply.Multiplication () ؛
الطريق إلى الأمام
يمكن أن تكون الحزم في Java إما حزمًا مضمنة أو معرفة من قبل المستخدم وهي ضرورية للوصول إلى الكود وإدارته بشكل أفضل. يعد مفهوم حزم Java أمرًا بالغ الأهمية لأي شخص في مجال تطوير البرامج.
شهادة PG المرتبطة بالوظيفة من upGrad في هندسة البرمجيات عبارة عن برنامج عبر الإنترنت مدته 5 أشهر يمكن أن يساعدك في إتقان مهارات البرمجة والاستعداد لأدوار البرامج. يركز البرنامج على المهارات المحورية مثل Java و JavaScript و CSS3 و HTML5 وما إلى ذلك ، وهو مصمم خصيصًا للطلاب الجدد الذين يرغبون في تعلم البرمجة.
يسلط الضوء على البرنامج:
- التخصص في MERN / Cloud-Native
- أكثر من 500 ساعة محتوى
- 50+ جلسة مباشرة
- 350+ ساعة من التدريب العملي
- خمسة مشاريع صناعية
- دعم التعلم بزاوية 360 درجة
- التواصل مع خبراء الصناعة
اشتراك اليوم وتعلم من الأفضل!
ما هي العبوة وأنواعها؟
الحزمة هي مجموعة من كيانات Java ذات الصلة مثل الفئات والفئات الفرعية والواجهات والتعليقات التوضيحية والتعداد. يمكن أن تحتوي أيضًا على عبوات فرعية. الحزم في Java من نوعين - الحزم المضمنة والحزم المعرفة من قبل المستخدم.
لماذا نستخدم الحزم في Java؟
نحن نستخدم الحزم في Java لمنع تعارض التسمية ، وجعل البحث وتحديد موقع واستخدام الفئات والواجهات والتعليقات التوضيحية والتعداد أسهل ، والتحكم في الوصول وتغليف البيانات.
ما هو الوصول على مستوى الحزمة في Java؟
الوصول إلى مستوى الحزمة في Java هو مستوى الوصول الافتراضي الذي توفره Java في حالة عدم تحديد معدل وصول. يتمثل دور مُعدِّلات الوصول في تقييد إمكانية الوصول إلى فئة أو متغير أو طريقة تنطبق عليها.