আসুন শিখি পরিপূর্ণ জাভা [পর্ব-৬] :: চলুন জেনে নিই জাভার ভেরিয়েবল এবং ডাটা টাইপ যা না জানলেই নয়

আস সালামু আলাইকুম, আশা করি সবাই ভাল আছেন। আলহামদুলিল্লাহ, আমিও আপনাদের দোয়ায় ভালই আছি। আজকে জাভার ৬নম্বর টিউনে নিয়ে এসেছি এমন এক বিষয় যেটা না জানলে আপনি শান্তি মত জাভা প্রোগ্রামিং ই করতে পারবেন না। মানে পুড়ে পুড়ে খাবে আপনাকে প্রতি মূহুর্তে বার বার আপনাকে বই ঘাটতে হবে এই ডাটা টাইপ এর জন্য। আর ভেরিয়েবল না বুঝলে তো আপনি প্রোগ্রামিং এর জন্য যোগ্যই হতে পারবেন না। তাই যেহেতু আমরা পরিপূর্ণ জাভা শিখতে চেয়েছি তাদের অবশ্যই জাভার ভেরিয়েবল এবং ডাটা টাইপ সম্পর্কেও ধারণা দিতে চাচ্ছি। কারণ ডাটা টাইপে এবং ভেরিয়েবলে কিছুটা পরিবর্তন আছে জাভায়। তাই যারা সি/সি++ পড়ে এসেছেন এতে তারাও উপকৃত হতে পারবেন। আমি জানি অনেকেই হয়ত সি/সি++ না পড়েই জাভা প্রোগ্রামিং এ এসেছেন। আপনি যে পারবেন না তা কিন্তু নয়। তবে আমি সাজেস্ট করবো আপনি সি/সি++ শিখে তারপর জাভা শিখতে আসুন। কারণ নাহলে আপনার অনেক কষ্ট হবে জাভা শিখতে। এরপর আর আমার কিছু বলার থাকে না তাই না??

ভেরিয়েবল আসলে কি? এটা কি আসলেই কোনো পাত্র?

ভেরিয়েবল তো ভেরিয়েবলই। ভেরিয়েবল শব্দের অর্থ পরিবর্তনশীল। ভেরিয়েবল এর ভেলু আসলে পরিবর্তনশীল। ভেরিয়েবল আসলে কোনো পাত্র না। তবে ভেরিয়েবল পাত্রের মতই আচরণ করে। যেমন, আপনি আজকে যেই পাত্র তেতুল রেখেছেন হয়ত আগামীকাল সেখানে মিষ্টিও রাখতে পারেন তাই না? সেটা আপনার ব্যক্তি গত ব্যাপার তেমনি আপনি একটি ভেরিয়েবল 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 TypeDefault ValueDefault size
booleanfalse1 bit
char'\u0000'2 byte
byte01 byte
short02 byte
int04 byte
long0L8 byte
float0.0f4 byte
double0.0d8 byte

char ডাটা হঠাত করে জাভায় ২বাইট হয়ে গেল কেন? এরকম প্রশ্ন অনেকের থাকতে পারে। সেটা সময় পেলে আগামী টিউনে আলোচনা করবো।

Java ভেরিয়েবল এর উদাহারণ : দুইটি নাম্বার যোগ করার প্রোগ্রাম

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);
}

}

আউটপুটঃ ২০

আজকে অনেক হয়েছে। বেশি কোডিং করলে আবার অনেকের মাথা নষ্ট হয়ে যেতে পারে। তাই এখনই এত বেশি একদিনে লোড দিতে চাচ্ছি না। যেটুকু আলোচনা হচ্ছে সেটুকু মনোযোগ দিয়ে অনুসরণ করুন। আমরা শীগ্রই প্রোগ্রামিং এ চলে যাবো।

তো আজকের মত বিদায়। ভাল থাকুন সুস্থ থাকুন, প্রযুক্তিকে ভালবাসুন আর প্রযুক্তির সাথেই থাকুন।

আল্লাহ হাফিজ।

ফেসবুকে আমি 

Level 1

আমি মোঃ আশিকুর রহমান সরল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 8 বছর 9 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 83 টি টিউন ও 102 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 12 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

আমি একজন প্রযুক্তি প্রেমী।কম্পিউটার ইঞ্জিনিয়ারিং এ লেখাপড়া করছি।পৃথিবীকে নতুন কিছু করে দেখাতে চাই। My Website


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস