ما المقصود بـ AutoBoxing و unboxing في Java؟



ستمنحك هذه المقالة نهجًا شاملاً تجاه Autoboxing في Java جنبًا إلى جنب مع بعض الأمثلة لفهم أفضل.

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

هيا نبدأ.





ما هو Boxing and Autoboxing في جافا؟

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

int FirstNumber = 1

المتغير 'FirstNumber' من النوع int وهو a . الآن ، ماذا لو أردت تحويل المتغير 'FirstNumber' إلى كائن؟ توفر Java طريقة للقيام بذلك.



عدد صحيح SecondNumber = عدد صحيح جديد (2)

لاحظ أن 'SecondNumber' ليس من النوع int ولكنه كائن من النوع Integer. تسمى عملية تحويل أنواع البيانات البدائية إلى كائن بالملاكمة. قد تسأل كيف هذا ممكن؟ دعونا نفكر في أبسط طريقة لإنجاز هذه المهمة. يمكننا إنشاء ملف صف دراسي تحتوي على سمة واحدة من النوع int ، مُنشئ يأخذ قيمة نوع int ويخصصها لسمة class لدينا ، وبعض الطرق لمعالجة هذه القيمة int. لمعرفة المزيد حول هذا الموضوع راجع هذا وثيقة .

ما هو مطور iOS

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

التعبئة التلقائية

في هذه المرحلة ، نعرف ما هي الملاكمة. الآن دعونا نفهم ما هو Autoboxing. عندما تتم عملية الملاكمة بواسطة المترجم دون ذكرها صراحة ، تسمى autoboxing.



دعونا نفهم هذا بمثال:

import java.util.ArrayList import java.util.Listclass Box {public static void main (String [] args) {List Mylist = new ArrayList () for (int i = 0 i<10 i++) Mylist.add(i) } }

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

Mylist.add (Integer.valueOf (i))

تمت إضافة سطر التعليمات البرمجية أعلاه في برنامجنا بواسطة المترجم.

ملحوظة- في السطر أعلاه من فئة الرمز ، تم ذكر اسم 'إينتيجر' قبل قيمة الطريقة () حيث أن valueOf () هي طريقة ثابتة. لمزيد من الأمثلة الرجوع إلى المستندات .

Unboxing و Autounboxing

رأينا كيف من نوع البيانات البدائية إلى كائنات. لكن هذا نصف القصة فقط. النصف الآخر من المجموعة النصية هو تحويل كائن من فئة غلاف النوع إلى نوع بياناته البدائي يسمى الإخراج من العلبة .

فمثلا-

عدد صحيح FirstNumber = عدد صحيح جديد (1) int SecondNumber = FirstNumber.intValue () System.out.println (SecondNumber)

الإخراج- 1

الملاكمة التلقائية- عندما تسمى عملية فتح العلبة التي يقوم بها المترجم دون ذكر صريح بـ Autounboxing.

فمثلا-

عدد صحيح = عدد صحيح جديد (20) عدد صحيح = رقم

الكود أعلاه هو مثال على Autounboxing. في القسم التالي ، سنتعرف على فئات المجمّع.

فئات التفاف

قمنا بالتحويل في كائن نوع متغير نوع intl Integer. هذه الفئة الصحيحة هي فئة مجمعة. في Java ، تتوفر فئة مجمعة لكل منها . تساعدنا فئات الغلاف هذه في تحويل متغير من نوع بدائي إلى كائن نوع فئة غلاف خاص. تعتبر طرق فئات الغلاف مفيدة في معالجة القيم.

يخبرنا الجدول أدناه عن نوع البيانات الأولية وفئة الغلاف الخاصة به.

النوع البدائي فئة الغلاف

قيمة منطقية

قيمة منطقية

وداعا

بايت

شار

حرف

تعلم رر SQL على الانترنت مجانا

تطفو

تطفو

int

عدد صحيح

طويل

طويل

قصيرة

قصيرة

مزدوج

مزدوج

لاحظ الكتابة بالأحرف الكبيرة في فئات Wrapper.

وهكذا وصلنا إلى نهاية هذه المقالة حول 'Autoboxing in Java'. إذا كنت ترغب في معرفة المزيد ، تحقق من بواسطة Edureka ، شركة تعليمية موثوقة عبر الإنترنت. تم تصميم دورة تدريب وإصدار شهادات Java J2EE و SOA من Edureka لتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في هذه المدونة 'autoboxing in Java' وسنعاود الاتصال بك في أقرب وقت ممكن.