জাভা পিওর অবজেক্ট ওরিয়েন্টেড ল্যাঙ্গুয়েজ না এবং এর প্রধান কারণ হচ্ছে কয়েকটা প্রিমিটিভ টাইপ। যেমন
- int
- char
- float
- double
রেপার ক্লাস কি?
- রেপার ক্লাস হচ্ছে প্রিমিটিভ টাইপের ক্লাস টাইপ
- প্রতিটা প্রিমিটিভ টাইপের জন্য একটা করে রেপার ক্লাস আছে
- রেপার ক্লাস প্রিমিটিভ টাইপ ডাটা হিসাবে নিয়ে অবজেক্ট আকারে রিটার্ন করতে পারে
রেপার ক্লাস এর সুবিধা কি কি?
- প্রিমিটিভ ক্লাসকে অবজেক্ট টাইপে কনভার্ট করে দেয়া
- java.util এর ক্লাস সমূহ শুধুমাত্র অবজেক্ট নিয়েই কাজ কাজ করে, এক্ষেত্রে রেপার ক্লাস প্রিমিটিভ কে অব্জেক্টে পরিণত করতে/ রিপ্রেসেজেন্ট করতে কাজ করে
- মাল্টি থ্রেডে সিনক্রোনাইজ করার জন্য অবজেক্ট লাগে, এখানেও তাই রেপার ক্লাস লাগে প্রিমিটিভিকে রিপ্রেসেন্ট করতে
প্রিমিটিভ ক্লাস এবং এর রেপার ক্লাস সমূহ
| Primitive Data Type | Type Wrapper Class |
|---|---|
| char | Character |
| byte | Byte |
| short | Short |
| long | Long |
| double | Double |
| float | Float |
| boolean | Boolean |
| int | Integer |
অটোবক্সিং কি?
অটোবক্সিং হচ্ছে অটোমেটিক্যালি প্রিমিটিভ টাইপ থেকে অবজেক্ট টাইপে কনভার্ট হয়ে যাওয়া।
ArrayList<Integer> arrayList = new ArrayList();
arrayList.add(25);
উদাহরণ থেকে দেখা যায় যে এরে হচ্ছে ইন্টিজার অবজেক্ট টাইপের কিন্তু ইন্সার্ট করা হয়েছে প্রিমিটিভ টাইপ এবং কোন এরর ছাড়া এই কাজটা হয়েছে। আসলে জাভা অটোবক্সিং করেছে।
আনবক্সিং কি?
আনবক্সিং হচ্ছে অবজেক্ট টাইপ থেকে অটোমেটিক্যালি প্রিমিটিভ টাইপে কনভার্ট হয়ে যাওয়া
ArrayList<Integer> arrayList = new ArrayList();
arrayList.add(25);
int num = arrayList.get(0);
ঊদাহরণ থেকে দেখা যাচ্ছে, ইন্টেজার অবজেক্ট থেকে প্রিমিটিভ টাইম num এ ভ্যালু এসাইন করা হয়েছে। এখানে জাভা আনবক্সিং করেছে।