وبلاگ

جاوا | آموزش کلاس Wrapper ها و مفهوم Unboxing و Auto-Boxing

کلاس Wrapper ها و مفهوم Unboxing و Auto-Boxing

🔆در جاوا کلاس wrapper (به فارسی کلاس پوشاننده یا کلاس بسته بندی کننده) به کلاس هایی گفته میشود که هشت داده ی نوع پیشین را به شی تبدیل میکند. لیست کلاس wrapper ها در تصویر بالا قابل مشاهده است.

🔰برای مثال برای تبدیل داده int به Integer از متد زیر استفاده میشود:

int x = 475;
Integer number = Integer.valueOf(x);

🛑 به این شیوه از تبدیل autoBoxing گفته میشود.
در این مورد برای تبدیلدوباره شی ایجاد شده به داده نوع پیشین از متد IntValue استفاده میشود:

int y =number.intValue();

🛑 به این شیوه از تبدیل شی به داده نوع پیشین، unboxing گفته میشود

💡البته در نسخه های اخیر جاوا نیازی به استفاده از این متد ها برای تبدیل نیست. این تغییر مقدار بصورت خودکار توسط کمپایلر انجام میشود:

Integer number = 475; //auto-boxing
int y = number; //unboxing

 چرا از کلاس wrapper ها استفاده کنیم؟

⭕️ بعضی از ساختار ها بجای داده های نوع پیشین با اشیا سروکار دارند. برای مثال کالکشن ها مانند اری لیست، لینک لیست و … در نتیجه برای استفاده لازم است که داده های نوع پیشین را بوسیله ی کلاس wrapper ها به شی تبدیل کنید:

ArrayList<Integer> list = new ArrayList<>();

⭕️ از انجا که این داده ها به شی تبدیل میشوند، میتوان مقدار ذخیره ی آن را برابر null قرار داد.

Integer number = null;

⭕️یکی از متد های پرکاربرد در این کلاس ها متد …parse میباشد. متد parse… برای تبدیل رشته به داده دیگر کاربرد دارد.
برای مثال:

int x = Integer.parseInt("475");//Converts String to integer
double y = Double.parseDouble("12.3");

 چرا از کلاس wrapper ها استفاده کنیم؟

💡 البته از لحاظ کارآمدی داده های نوع پیشین بیشتر کارآمد خواهند بود. پیشنهاد میشود که فقط در صورت لزوم از کلاس Wrapper ها به جای داده های نوع پیشین استفاده کنید.

 

جهت مطالعه سایر آموزش های کوتاه این زبان، می توان به مقالات جاوا مراجعه کنید.

اشتراک گذاری:

مطالب زیر را حتما مطالعه کنید

دیدگاهتان را بنویسید