موصى به, 2024

اختيار المحرر

الفرق بين الحزم والواجهات في جافا

الحزم والواجهات كلا بمثابة حاوية. يمكن استخدام المحتوى الموجود في الحزم والواجهات من خلال الفصول الدراسية عن طريق استيراده وتطبيقه بالمقابل. الفرق الأساسي بين الحزم والواجهات هو أن الحزمة تحتوي على مجموعة من الطبقات والواجهات بينما تحتوي الواجهة على طرق وحقول. دعونا دراسة بعض الاختلافات الأخرى بمساعدة مخطط المقارنة.

رسم بياني للمقارنة

أساس للمقارنةحزمواجهات
الأساسيةالحزم عبارة عن مجموعة من الفصول و / أو الواجهات معاً.واجهات هي مجموعة من الأساليب المجردة والحقول الثابتة.
الكلمةيتم إنشاء الحزم باستخدام الكلمة الرئيسية "حزمة".يتم إنشاء الواجهة باستخدام الكلمة الأساسية "Interface".
بناء الجملةحزمة package_name.
الطبقة العامة class_name {
.
(جسد الصف)
.
}
واجهة interface_name {
إعلان متغير
بيان الطريقة ؛
}
التمكن منيمكن استيراد حزمةيمكن تمديد الواجهة بواجهة أخرى وتنفيذها بواسطة الفصل.
الوصول إلى الكلمات الرئيسيةيمكن استيراد الحزم باستخدام الكلمة الرئيسية "import".يمكن تنفيذ واجهات باستخدام الكلمة الأساسية "تنفيذ".

تعريف الحزم

الحزم هي مجموعة أو مجموعات متنوعة من الطبقات والواجهات. ترتبط الفئات في الحزم ببعضها البعض في نطاق ما أو بالوراثة. يمكنك أيضًا إنشاء الحزمة واستخدامها لبرنامجك.

خلق حزمة

لإنشاء حزمة ما عليك سوى اتباع الخطوات التالية.

  1. افتح ملفًا ثم أعلن اسم الحزمة في أعلى الملف ، مثل [package package_name؛ ] اسم الحزمة هو الاسم الذي تريد منحه للحزمة.
  2. بعد ذلك ، يمكنك تحديد فئة تريد وضعها في الحزمة ، وتذكر أنك تعلن أنها عامة.
  3. احفظ الملف كملف .java ثم قم بتجميع الملف ، ثم ".class" هو الحصول على ذلك الملف.
  4. لإنشاء حزمة لهذا الملف ، يكون الأمر المستخدم هو "javac -d. file_name.java. يمكنك أن ترى أن الحزمة تم إنشاؤها تحتوي على ملف ".class" في الدليل الحالي. لوضعها في الدليل الرئيسي ، استخدم javac -d. . الأمر file_name.java.
  5. يمكنك أيضًا إنشاء حزمة فرعية من خلال إعلان اسم الحزمة الفرعية باسم [package package_name1. package_name2. ] في الجزء العلوي من الملف.
 حزمة Mypackage class myclass {public void displayMypackage () {system.out.println ("method methodMypackage of class myclass of package Mypackage")؛ } 

باستخدام الحزمة

يمكن استخدام الحزم التي تم إنشاؤها أو المتوفرة في الدليل في البرنامج باستخدام عبارة import.The الكلمة الأساسية المستخدمة لاستيراد أي حزمة في البرنامج الخاص بك هي "استيراد". يمكن كتابة بيان الاستيراد بطريقتين ، أو يمكنك القول أن هناك طريقتين للوصول إلى أي حزمة. أولاً ، إذا كنت تريد استخدام فئة معينة من حزمة ، فإن الكلمة الأساسية "استيراد" يتبعها اسم الحزمة متبوعًا بمشغل النقطة واسم الفئة الذي تريد استخدامه من الحزمة. ثانيًا ، إذا كنت تريد استخدام العديد من الفئات المضمنة في الحزم ، فإن الكلمة الأساسية للاستيراد تتبعها اسم الحزمة متبوعًا بالنقطة والمعامِل "*".

 استيراد package_name. CLASS_NAME. أو استيراد package_name. *؛ 

في التعليمات البرمجية أعلاه ، يمكنك رؤية علامة * التي تشير إلى أن الطريقة الثانية تستورد جميع الفئات الموجودة في الحزم.

الآن ، دعونا نرى استخدام الحزمة مع مثال.

 استيراد Mypackage. myclass {class TestMypackage {public static void main (string args []) {myclass ob1 = new myclass ()؛ ob1.displayMypackage ()؛ }} / طريقة العرض displayMypackage class myclass of package Mypackage. 

في التعليمات البرمجية أعلاه ، قام TestMypackage فئة باستيراد الحزمة Mypackage واستخدم طريقة displayMypackage () الخاصة بها.

تعريف الواجهة

تعتبر الواجهة نوعًا من الفئة ، ولكنها تختلف بمعنى أن الطرق المعلنة في الواجهة مجردة وهذا يعني أن الأساليب يتم الإعلان عنها فقط ولكن لم يتم تعريفها. تكون الحقول في الواجهة دائمًا عامة وثابتة ونهائية. يجب تهيئة الحقول في وقت الإعلان. يتم تعريف الطرق المعلنة من قبل الطبقة التي تنفذ هذه الواجهة وفقا لمتطلباتها. بما أن الطرق في الواجهة لا تقوم بأي وظيفة ، لذلك لا يوجد استخدام لإنشاء أي كائن من الواجهة. وبالتالي ، لا يمكن إنشاء أي كائن للواجهة.

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

 interface area {float pi = 3.14؛ float find_area (float a، float b) {} class circle تنفذ area {float find_area (float a، float b) {return (pi * a * a)؛ } Class Shapes {public static void main (string args []) {Area A = new Area ()؛ الدائرة C = دائرة جديدة () ؛ A = C؛ تعويم F = المنطقة. find_area (10،10)؛ system.out.println ("مساحة الدائرة: + F)؛ } 

في التعليمات البرمجية أعلاه ، أنشأنا منطقة واجهة ، ونفذت دائرة الفئة منطقة الواجهة. وقد تمت تهيئة حقل "pi" في الواجهة في وقت إعلانه. حددت الدائرة الدراسية الطريقة التجريدية لمنطقة الفصل وفقًا لمتطلباتها.

الاختلافات الرئيسية بين الحزم والواجهات في جاوة

  1. الحزمة عبارة عن مجموعة من الفصول والواجهات معاً في حين أن الواجهة هي مجموعة من الأساليب المجردة.
  2. يتم إنشاء الحزمة باستخدام حزمة كلمات رئيسية بينما يتم إنشاء واجهة باستخدام واجهة كلمة رئيسية.
  3. في حالة استخدام فئة أو واجهة داخل الحزمة ، يتم استخدام الحزمة لكي يتم استيرادها أثناء تنفيذ الواجهة.

استنتاج:

كل الحزم والواجهة هي الحاويات. تعمل الحزمة على تقليل حجم الشفرة نظرًا لأننا نقوم فقط باستيراد الفصل المراد استخدامه بدلاً من تعريفه مرة أخرى. في حين أن الواجهة تقلل من حالات الارتباك التي حدثت أثناء وجود العديد من الميراث لأنه في حالة الميراث المتعدد ، فإن الطبقة الموروثة لا تقرر تحديد هذا التعريف للطريقة التي يجب أن ترثها بدلاً من تحديدها.

Top