আস সালামু আলাইকুম, আশা করি সবাই ভাল আছেন। আলহামদুলিল্লাহ, আমিও আপনাদের দোয়ায় ভালই আছি। আজকে জাভার ৬নম্বর টিউনে নিয়ে এসেছি এমন এক বিষয় যেটা না জানলে আপনি শান্তি মত জাভা প্রোগ্রামিং ই করতে পারবেন না। মানে পুড়ে পুড়ে খাবে আপনাকে প্রতি মূহুর্তে বার বার আপনাকে বই ঘাটতে হবে এই ডাটা টাইপ এর জন্য। আর ভেরিয়েবল না বুঝলে তো আপনি প্রোগ্রামিং এর জন্য যোগ্যই হতে পারবেন না। তাই যেহেতু আমরা পরিপূর্ণ জাভা শিখতে চেয়েছি তাদের অবশ্যই জাভার ভেরিয়েবল এবং ডাটা টাইপ সম্পর্কেও ধারণা দিতে চাচ্ছি। কারণ ডাটা টাইপে এবং ভেরিয়েবলে কিছুটা পরিবর্তন আছে জাভায়। তাই যারা সি/সি++ পড়ে এসেছেন এতে তারাও উপকৃত হতে পারবেন। আমি জানি অনেকেই হয়ত সি/সি++ না পড়েই জাভা প্রোগ্রামিং এ এসেছেন। আপনি যে পারবেন না তা কিন্তু নয়। তবে আমি সাজেস্ট করবো আপনি সি/সি++ শিখে তারপর জাভা শিখতে আসুন। কারণ নাহলে আপনার অনেক কষ্ট হবে জাভা শিখতে। এরপর আর আমার কিছু বলার থাকে না তাই না??
ভেরিয়েবল তো ভেরিয়েবলই। ভেরিয়েবল শব্দের অর্থ পরিবর্তনশীল। ভেরিয়েবল এর ভেলু আসলে পরিবর্তনশীল। ভেরিয়েবল আসলে কোনো পাত্র না। তবে ভেরিয়েবল পাত্রের মতই আচরণ করে। যেমন, আপনি আজকে যেই পাত্র তেতুল রেখেছেন হয়ত আগামীকাল সেখানে মিষ্টিও রাখতে পারেন তাই না? সেটা আপনার ব্যক্তি গত ব্যাপার তেমনি আপনি একটি ভেরিয়েবল A তে কখনও ৫ কখনও ১০ কখনো বা ১০০ এরকম আপনার যা ইচ্ছা তাই রাখতে পারবেন শুধু নির্দিষ্ট কিছু নিয়ম মেনে। তাহলে ভেরিয়েবল আসলে কি? ভেরিয়েবল হচ্ছে আপনার মাথা আর আমার মন্ডু। হা হা হা... ভাবছেন আমি রেগে গিয়েছি? আরে না। আমার রাগ এত সস্তা না।
ভেরিয়েবল আসলে প্রকৃত পক্ষে মেমরি লোকেশনের একটা নাম। ধরেন আপনার আপনি একটি ভেরিয়েবল এর নাম দিলেন data. সেটা অটোমেটিক্যালি একটা লোকেশন নিয়ে নিবে। ধরুন লোকেশন নাম্বার ১০
নিল। এখানে শুধু মাত্র লোকেশনের পরিবর্তে একটা নাম ব্যবহার করা হয়েছে আর কিছু নয়। এখন আপনি এই ভেরিয়েবলে যা খুশি রাখতে পারেন ডাটা টাইপ বলে দিয়ে। যেমন, একটা ফসলের ক্ষেতে কখনো বেগুন, কখনো আলু, কখনো পটল আবার কখনো বা ধান চাষ করা যায়। মানে একই লোকেশনে বিভিন্ন ফসল। ঠিক তেমনি ভাবে আপনি একই লোকশনে যখন যে ধরণের ইচ্ছা ডাটা নিয়ে কাজ করতে পারবেন।
int data=50;//এখানে data হচ্ছে variable
জাভাতে ভেরিয়েবল হচ্ছে তিন প্রকার। এগুলো হলঃ
class A{
int data=50;//instance variable
static int m=100;//static variable
void method(){
int n=90;//local variable
}
}//end of class
আশা করি বুঝতে পেরেছেন।
আগে জানা দরকার ডাটা টাইপ আসলে কি? ডাটা টাইপ বলতে বুঝায় ডাটার ধরন। আসলে আমরা কি ধরণের ডাটা নিয়ে কাজ করবো তা ভেরিয়েবল ডিক্লেয়ার করার সময় কম্পিউটারকে বলে দিতে হবে। আসলে কম্পিউটারকে একটা বাচ্চার সাথে তুলনা করা যেতে পারে। কারণ একটা বাচ্চাকে ছোট থেকে ঠিক যা কিছু শেখানো হয় সে কিন্তু ঠিক তাই শিখে। তেমনি আপনি বা প্রোগ্রামার কম্পিউটার কে ঠিক যা শিখাবেন কম্পিউটার তাই শিখবে। আর পরে সেই অনুযায়ীই কাজ করবে। তো কম্পিউটারকে শেখানোর জন্য যেহেতু ডাটা টাইপও লাগবে তাহলে চলুন জেনে নি জাভায় ডাটা টাইপ কত প্রকার ও কি কি?
জাভায় ডাটা টাইপ মূলত দুই প্রকার।যথা
এই ডাটা টাইপগুলোকে আবার বেশ কিছু ভাগে ভাগ করা হয়েছে। টাইপ করতে আর ভাল লাগতেছে না তাই নিচের ছবি থেকে দেখে নিন। আর মুখাস্ত, ঠুটস্থ আর পেটস্থ করে ফেলুন এখনই। সাথে ডাটা টাইপের সাইজগুলোও মুখাস্ত করে নিন।
জেনে নিন জাভার ডাটা টাইগুলোর ডিফল্ট ভেলু আর সাইজঃ
Data Type | Default Value | Default size |
---|---|---|
boolean | false | 1 bit |
char | '\u0000' | 2 byte |
byte | 0 | 1 byte |
short | 0 | 2 byte |
int | 0 | 4 byte |
long | 0L | 8 byte |
float | 0.0f | 4 byte |
double | 0.0d | 8 byte |
char ডাটা হঠাত করে জাভায় ২বাইট হয়ে গেল কেন? এরকম প্রশ্ন অনেকের থাকতে পারে। সেটা সময় পেলে আগামী টিউনে আলোচনা করবো।
class Sum{
public static void main(String[] args){
int x=20;
int y=10;
int z=x+y;
System.out.println(z);
}
}
আউটপুটঃ30
না বুঝলে কোড পরে বুঝাবো। আজ শুধু দেখে রাখুন। আর যারা সি/সি++ করেছেন আশা করি তারা বুঝতে পেরেছেন।
java ভেরিয়েবল এর উদাহারণঃ ডাটাকে সংকীর্ন বা ফ্লট টাইপ ডাটাকে ইন্টিজারে রুপান্তর(টাইপকাস্টিং)
class Typecasting{
public static void main(String[] args){
float f=20.5f;
//int x=f;//Compile time error
int x=(int)f;
System.out.println(f);
System.out.println(x);
}
}
Output:
10.5
10
জাভা ভেরিয়েবল এর উদাহারণঃ ছোট সংখ্যা যোগ
class Addlow{
public static void main(String[] args){
byte x=10;
byte y=10;
//byte z=a+b;//Compile Time Error: because x+y=20 will be int
byte z=(byte)(x+y);
System.out.println(z);
}
}
আউটপুটঃ ২০
আজকে অনেক হয়েছে। বেশি কোডিং করলে আবার অনেকের মাথা নষ্ট হয়ে যেতে পারে। তাই এখনই এত বেশি একদিনে লোড দিতে চাচ্ছি না। যেটুকু আলোচনা হচ্ছে সেটুকু মনোযোগ দিয়ে অনুসরণ করুন। আমরা শীগ্রই প্রোগ্রামিং এ চলে যাবো।
তো আজকের মত বিদায়। ভাল থাকুন সুস্থ থাকুন, প্রযুক্তিকে ভালবাসুন আর প্রযুক্তির সাথেই থাকুন।
আল্লাহ হাফিজ।
আমি মোঃ আশিকুর রহমান সরল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 8 বছর 9 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 83 টি টিউন ও 102 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 12 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
আমি একজন প্রযুক্তি প্রেমী।কম্পিউটার ইঞ্জিনিয়ারিং এ লেখাপড়া করছি।পৃথিবীকে নতুন কিছু করে দেখাতে চাই। My Website