۰ پوریا شفیعی
پوریجا شماره اول - AutoBoxing & Unboxing
جامعه جاوا (اندروید) ایجاد شده در ۰۳ خرداد ۱۳۹۹

 

قبل از سلام اگر بی حوصله ای میتونی اخر تاپیک خلاصه این اموزش رو بخونی .

 

دوستان سلام از امشب یعنی ۳ خرداد ۹۹ من تصمیم گرفتم هر از گاهی پستی منوط به یاد گیری زبان جاوا به زبان خیلی خیلی ساده بذارم 

و همچنین من این مطالب رو به زبان عامیانه مینویسم و از جایی کپی نمیکنم.

اما پوریچا چی هست؟ پوری (مخفف اسم خودم یعنی پوریا) + جا ( زبان دوست داشتنی من یعنی جاوا)

-----------------------------------------------

بریم برای آموزش :

AutoBocxing and Unboxing چیه؟ 

خیلی ساده بخواهم بگم یعنی بسته بندی شدن  و از بسته بندی در اوردن ی چیزی اما اون ی چیز چیه؟

int num = 10;
Integer num1 = new Integer(num);

مثال بالا رو در ذهنتون داشته باشید ببینید نوع داده ....,int,double,float بهش میگن primitive و نوع داده Integer و Double و ...هم بهش میگن wrapper (که این‌ها نوع کلاسی همون primitive‌ها هستند یعنی هر نوع primitive ی نوع کلاسی هم داره ) که این نوع کلاسی‌ها داخل کلاس مربوطه شون اگر برین ی سری متد میبینین که میتونین خیلی کارا باهاشون بکنین (مثلا از نوع wrapper‌ها ) شی بسازید و روی اون شی‌ها متد call کنید .

اما در مثال بالا من اومدم مقدار primitive رو یعنی عدد ۱۰ ریختم توی نوع wrapper از نوع Integer که به این عمل AutoBoxing میگن 

اما بر عکس این روش رو میگن unBoxing یعنی چی؟

به مثال زیر توجه کنید :

Integer num = new Integer(10);
int num2=num.intValue();

من در اینجا اومدم مقدار num که عدد ده هست و از wrapper مون یعنی Integer درست شده رو ریختم توی نوع داده int که اسمشم num۲ هست که به این عمل unBoxing گویند 

نکته مهم : این اعمال در جاوا به صورت خودگار انجام میشه .

کاربرد در برنامه نویسی :فرض کنید یه متدی داریم به صورت زیر 

public void test(Integer a){
 //...
}

اگر ما بیایم به این متد مقداری بدیم یعنی مثلا بنویسیم :

test(15);

این عدد ۱۵ ما که از نوع  int هست یعنی نوع primitive ه  به صورت خودکار به Integer تبدیل میشه پس همونطور که باید حدس زده باشین عمل Autoboxing داره انجام میشه .

درس تموم شد 

دوست دارم تعامل کنیم بنظرتون کاربر‌های دیگر این اعمال کجا میتونه باشه؟

اگر دوست داشتین کلید star رو بزنین (تا بدونم چند نفر دوست داشتید ) تا بازم بنویسم (بستگی داره دوست داشته باشین) تا با هم یاد بگیریم .

پوریا هستم از سون لرن .

خداقوت.

پایان.

اما واسه افراد بی حوصله خلاصه ای نوشتم :

AutoBoxing یعنی تبدیل primitive به wraperClass

Unboxing یعنی تبدیل wraperClass به primitive 

که هر دو در جاوا به صورت خودکارانجام میشن .