"হাই, অ্যামিগো!"

"হাই, এলি!"

"আমি আজ ভালো মেজাজে আছি, তাই আমি আপনাকে কিছু মজার কথা বলতে চাই। আমি শুরু করব জাভা এর টাইপ সিস্টেম কিভাবে আদিম প্রকারের সাথে ডিল করে।"

" জাভাতে, প্রতিটি অবজেক্ট এবং প্রতিটি ভেরিয়েবলের নিজস্ব প্রিসেট অপরিবর্তনীয় টাইপ আছে। একটি আদিম ভেরিয়েবলের ধরন নির্ধারণ করা হয় যখন প্রোগ্রামটি কম্পাইল করা হয়, কিন্তু একটি অবজেক্টের ধরন নির্ধারণ করা হয় যখন এটি তৈরি করা হয়। একটি নতুন তৈরি করা অবজেক্ট এবং/অথবা পরিবর্তনশীলের ধরন। তার জীবদ্দশায় অপরিবর্তিত থাকে। এখানে একটি উদাহরণ:"

জাভা কোড বর্ণনা
int a = 11;
int b = 5;
int c = a / b; // c == 2
a / b- পূর্ণসংখ্যা বিভাগের প্রতিনিধিত্ব করে। উত্তর দুটি। ডিভিশন অপারেশন থেকে অবশিষ্টাংশ কেবল উপেক্ষা করা হয়।
int a = 13;
int b = 5;
int d = a % b; // d == 3
daদ্বারা পূর্ণসংখ্যা বিভাজনের অবশিষ্টাংশ সংরক্ষণ করবে b। বাকি 3।

"এখানে কয়েকটি আকর্ষণীয় সূক্ষ্মতা রয়েছে যা আপনাকে মনে রাখতে হবে।"

"প্রথম, একটি রেফারেন্স ভেরিয়েবল সর্বদা একটি মান নির্দেশ করে না যেটি একই ধরণের আছে।"

"দ্বিতীয়, যখন দুটি ভিন্ন প্রকারের ভেরিয়েবল ইন্টারঅ্যাক্ট করে, তখন প্রথমে তাদের একই প্রকারে রূপান্তরিত করতে হবে।"

"বিভাজন সম্পর্কে কি? যদি আমরা 1 কে 3 দ্বারা ভাগ করি, তাহলে আমরা 0.333(3) পাব। ঠিক আছে?"

"না, এটা ঠিক নয়। যখন আমরা দুটি পূর্ণসংখ্যাকে ভাগ করি, ফলাফলটিও একটি পূর্ণসংখ্যা হয়। আপনি যদি 5 কে 3 দ্বারা ভাগ করেন, তাহলে উত্তরটি 1 হবে এবং অবশিষ্ট দুটি হবে। এবং অবশিষ্টাংশ উপেক্ষা করা হবে।"

"যদি আমরা 1 কে 3 দ্বারা ভাগ করি, আমরা 0 পাব (অনুস্মারক 1 সহ, যা উপেক্ষা করা হবে)।"

"কিন্তু আমি যদি 0.333 পেতে চাই তাহলে আমি কি করব?"

"জাভাতে, বিভাগ করার আগে, একটি ফ্লোটিং-পয়েন্ট নম্বর এক (1.0) দ্বারা গুণ করে একটি সংখ্যাকে ফ্লোটিং-পয়েন্ট (ভগ্নাংশ) টাইপে রূপান্তর করা ভাল।"

জাভা কোড বর্ণনা
int a = 1/3;
a0 হবে
double d = 1/3;
 d 0.0 হবে
double d = 1.0 / 3;
dহবে 0.333(3)
double d = 1 / 3.0;
dহবে 0.333(3)
int a = 5, b = 7;
double d = (a * 1.0) / b;
d0.7142857142857143 হবে

"বুঝেছি."