কম্পিউটার টিউটোরিয়াল

জাভা ভেরিয়েবল: শুরুর জন্য সম্পূর্ণ গাইড

জাভা ভেরিয়েবল কীভাবে ব্যবহার করবেন

ভেরিয়েবল কী, আপনি জিজ্ঞেস করলেন? এটি প্রোগ্রামিং-এ একটি অত্যাবশ্যক কনসেপ্ট, এবং এর Безে অ্যাপ্লিকেশন ডেভেলপ করা অনেক কঠিন হত।

একটি ভেরিয়েবল হলো আপনার কোডে ব্যবহৃত মানগুলো লেবেল করার একটি পদ্ধতি। ভেরিয়েবল উপযোগী কারণ একবার ভেরিয়েবল ঘোষণা করলে, আপনি আপনার প্রোগ্রামে যত বার চান তত বার সেটি পুনরাবৃত্তি ব্যবহার করতে পারেন। ভেরিয়েবল ব্যবহার করলে আপনার কোডে মানগুলো বারবার রিপিট করতে হয় না।

এই গাইডে আমরা ভেরিয়েবল কী, কীভাবে কাজ করে, এবং আপনার জাভা প্রোগ্রামে ভেরিয়েবল কীভাবে ব্যবহার করবেন তা আলোচনা করব। শুরু করি!

জাভা ভেরিয়েবল কী?

একটি ভেরিয়েবল হলো একটি মান যা একটি নাম বা লেবেলের সাথে জড়িত থাকে। এই নামটি ব্যবহার করে ভেরিয়েবল যে মান সংরক্ষণ করে সেটি রেফারেন্স করা যায়।

একটি জ্যাম জারের লেবেল হিসেবে ভেরিয়েবল চিন্তা করুন। লেবেলটি বলে দেয় জ্যাম জারের ভেতরে কী আছে, সেটি স্ট্রবেরি জ্যাম, রাসবেরি জ্যাম, বা অন্য কোনো ফ্লেভার।

নিচের কোড বিবেচনা করুন:

String jam = "Raspberry";

আমরা "jam" নামে একটি জাভা ভেরিয়েবল তৈরি করেছি। আমরা যখনই আমাদের কোডে "jam" ভেরিয়েবলটি রেফারেন্স করব, তখন আমরা সেটি যে মান সংরক্ষণ করেছে সেটি অ্যাক্সেস করতে পারব। এর মানে আমাদের কোডে "Raspberry" শব্দটি একাধিকবার রিপিট করতে হবে না।

জাভা ভেরিয়েবল নিচের সিনট্যাক্স ব্যবহার করে:

type name = value;

Type হলো ভেরিয়েবলে সংরক্ষিত ডেটার টাইপ। একবার সেট হলে এটি পরিবর্তন করা যায় না। Name হলো ভেরিয়েবলের নাম এবং Value হলো সেই নামের পাশে সংরক্ষিত মান।

এখন আমাদের ভেরিয়েবল ঘোষণা করা হয়ে গেলে, আমরা এর মান অ্যাক্সেস করতে পারি। "jam" ভেরিয়েবলের মান প্রিন্ট করি:

System.out.println(jam);

কোড চালালে Raspberry ফেরত আসবে।

ভেরিয়েবল শুধু স্ট্রিং সংরক্ষণ করে না; এতে যেকোনো ডেটা টাইপ রাখা যায়। উদাহরণস্বরূপ, যদি আমরা ১০ মানটি একটি ভেরিয়েবলে সংরক্ষণ করতে চাই, তবে এভাবে করব:

int a = 10;
System.out.println(a);

আমাদের কোড ১০ ফেরত দেবে। আপনি যখন ভেরিয়েবলে মান সংরক্ষণ করেন, তখন সেগুলো ম্যানিপুলেট করতে পারেন। উপরের ভেরিয়েবল ব্যবহার করে কিছু গণিত করতে পারি:

int a = 10;
int b = a - 5;
System.out.println(b);

আমাদের প্রোগ্রাম ৫ ফেরত দেবে; জাভা সব গাণিতিক কাজ করল। একটি ম্যাথ সামের ফলাফল ভেরিয়েবলে অ্যাসাইন করা উপযোগী কারণ এটি মানে আমরা ফলাফলটি একাধিকবার রেফারেন্স করতে পারি। আপনাকে সেটি শুধু একবার করলে হয়—ভেরিয়েবল ঘোষণার সময়—এবং আপনি আপনার প্রোগ্রামে এর ফলাফল ব্যবহার করতে পারেন।

ভেরিয়েবল অন্যান্য ডেটা টাইপও ব্যবহার করতে পারে। উদাহরণস্বরূপ, একটি ভেরিয়েবল একটি ক্লাসের অবজেক্টকে অ্যাসাইন করা যায়। ফ্লোটিং-পয়েন্ট নম্বর, ক্যারেক্টার, এবং বুলিয়ানের কিছু উদাহরণ:

float price = 2.99;
char grade = 'F';
boolean lightsOn = true;

ভেরিয়েবল আপনার কোডে মান সংরক্ষণ করার জন্য লেবেলের মতো কাজ করে।

ভেরিয়েবল রি-অ্যাসাইনমেন্ট

নামটিই ইঙ্গিত দিচ্ছে: ভেরিয়েবলের মান পরিবর্তনশীল হতে পারে। জাভা-তে এমন কোনো নিয়ম নেই যে একবার ভেরিয়েবল ঘোষণা হলে তার মান পরিবর্তন করা যাবে না। ফলস্বরূপ, আপনার ভেরিয়েবল আপনার প্রোগ্রামে একই থাকতে হয় না।

একটি ভেরিয়েবল রি-অ্যাসাইন করতে, আপনাকে ভেরিয়েবলের নাম, তারপর একটি ইকোয়াল সাইন, এবং তারপর আপনি যে নতুন মানটি সেই ভেরিয়েবলে অ্যাসাইন করতে চান সেটি লিখতে হবে:

String jam = "Raspberry";
System.out.println(jam);
jam = "Strawberry";
System.out.println(jam);

আমাদের কোড ফেরত দেবে:

Raspberry
Strawberry

ভেরিয়েবল রি-অ্যাসাইন করার সময় ডেটা টাইপ বলতে হয় না। কারণ জাভা আপনি যে ডেটা টাইপটি একটি ভেরিয়েবলে অ্যাসাইন করেছেন সেটি ট্র্যাক করে রাখে।

ভেরিয়েবল রি-অ্যাসাইনমেন্ট গুরুত্বপূর্ণ কারণ এর মানে আপনার প্রোগ্রাম চলাকালীন মান পরিবর্তন করতে পারে।

উদাহরণস্বরূপ, একটি গেসিং গেমকে একটি কাউন্টার এর মান পরিবর্তন করতে হতে পারে যাতে আপনি শুধু তিনবার নম্বর অনুমান করতে পারেন। আপনি প্রতিবার অনুমান করলে কাউন্টার এক বাড়াতে হবে।

মনে রাখবেন যে ভেরিয়েবল শুধু সেই টাইপের মান রি-অ্যাসাইন করতে পারে যা সেটির সাথে প্রাথমিকভাবে জড়িত ছিল। আমাদের উপরের "jam" ভেরিয়েবলকে একটি অ্যারে অ্যাসাইন করা যাবে না, কারণ এটি প্রাথমিকভাবে স্ট্রিং হিসেবে ঘোষণা করা হয়েছিল। যদি আমরা জ্যামের একটি তালিকা সংরক্ষণ করতে চাই, তবে আমাদের একটি নতুন ভেরিয়েবল ঘোষণা করতে হবে এবং সেটি অ্যারে অ্যাসাইন করতে হবে।

জাভা ভেরিয়েবল টাইপ

ভেরিয়েবল তিন ধরনের: লোকাল, স্ট্যাটিক, এবং ইনস্ট্যান্স ভেরিয়েবল।

লোকাল ভেরিয়েবল একটি মেথডের বডির ভেতরে ঘোষণা করা হয়। এই মেথড শুধু একটি নির্দিষ্ট মেথডের ভেতর থেকে অ্যাক্সেস করা যায়। আমাদের الآن পর্যন্ত উদাহরণে, আমরা লোকাল ভেরিয়েবল ঘোষণা করেছি, কারণ সেগুলো আমাদের প্রোগ্রামের একটি মেথডের ভেতরে ঘোষণা করা হয়েছে।

ইনস্ট্যান্স ভেরিয়েবল একটি ক্লাসের ভেতরে কিন্তু একটি মেথডের বাইরে ঘোষণা করা হয়। ইনস্ট্যান্স ভেরিয়েবলের উদাহরণ:

class Main {
    String jam = "Raspberry";
    public static void main(String args[]) {
        // Our code
    }
}

আমরা "jam" ভেরিয়েবলটি আমাদের Main ক্লাসের ভেতরে কিন্তু আমাদের "main" মেথডের বাইরে ঘোষণা করেছি। এটি একটি ইনস্ট্যান্স ভেরিয়েবল।

স্ট্যাটিক ভেরিয়েবল হলো যেকোনো ভেরিয়েবল যা স্ট্যাটিক হিসেবে ঘোষণা করা হয়। একটি ভেরিয়েবল স্ট্যাটিক করতে, আমাদের "static" কিওয়ার্ড ব্যবহার করে সেটি স্ট্যাটিক হিসেবে ঘোষণা করতে হবে। স্ট্যাটিক ভেরিয়েবল লোকাল হতে পারে না। জাভা-তে স্ট্যাটিক ভেরিয়েবলের উদাহরণ:

class Main {
    static String jam = "Raspberry";
    public static void main(String args[]) {
        System.out.println(jam);
    }
}

আমরা আমাদের ক্লাসের ভেতরে "jam" নামে একটি ভেরিয়েবল ঘোষণা করেছি যার মান "Raspberry"।

একাধিক ভেরিয়েবল ঘোষণা

জাভা-তে, একই লাইনে একাধিক ভেরিয়েবল ঘোষণা করা সম্ভব। এটি উপযোগী কারণ এটি আপনার ভেরিয়েবল ঘোষণাগুলো আরও সংক্ষিপ্ত করে, ফলে আরও পড়া সহজ হয়।

আপনি যদি এই সিনট্যাক্স ব্যবহার করতে চান তবে শুধু কয়েকটি ভেরিয়েবল একই লাইনে ঘোষণা করুন। এটি নিশ্চিত করবে যে আপনি একসাথে অনেক ভেরিয়েবল অ্যাসাইন করছেন না, যা আপনার কোডে জটিলতা আনতে পারে। আপনি শুধু একই টাইপের একাধিক ভেরিয়েবল একসাথে ঘোষণা করতে পারেন।

একই লাইনে একাধিক ভেরিয়েবল ঘোষণা করতে, আপনাকে প্রথমে সেই ভেরিয়েবলগুলোর ডেটা টাইপ নির্দিষ্ট করতে হবে। তারপর, আপনি ঘোষণা করতে চান সেই সব ভেরিয়েবলের একটি তালিকা তৈরি করতে পারেন।

উদাহরণ বিবেচনা করুন:

int a = 1, b = 2, c = 3;
System.out.println(a + b - c);

আমাদের কোড ফেরত দেবে: 0। আমরা তিনটি ভেরিয়েবল ঘোষণা করেছি: a, b, এবং c। প্রতিটির নিজস্ব মান রয়েছে: a = 1, b = 2, এবং c = 3।

জাভা ভেরিয়েবল কীভাবে নাম দিবেন

প্রতিটি ডেভেলপারের ভেরিয়েবল নামকরণের নিজস্ব স্টাইল রয়েছে; এটি এমন একটি জিনিস যা আপনি প্রোগ্রামিং শিখার সাথে সাথে শিখবেন।そう言うと, কিছু নিয়ম রয়েছে যা আপনি ভেরিয়েবল নাম দিতে সময় বিবেচনা করবেন।

ভেরিয়েবল নামগুলোকে প্রায়শি আইডেন্টিফায়ার বলা হয়।

জাভা-তে ভেরিয়েবলে কোনো স্পেস থাকতে পারে না। ভেরিয়েবলে অক্ষর, সংখ্যা, এবং আন্ডারস্কোর এবং ডলার সাইন ক্যারেক্টার থাকতে পারে। তবে একটি ভেরিয়েবল অবশ্যই অক্ষর দিয়ে শুরু হতে হবে।

বৈধ ভেরিয়েবল নামের কিছু উদাহরণ:

  • raspberry
  • peanutButter
  • book

নিচের ভেরিয়েবল নামগুলো অবৈধ:

  • 1raspberry: এই ভেরিয়েবল সংখ্যা দিয়ে শুরু হয়েছে, যা অনুমোদিত নয়।
  • _peanutButter: এই ভেরিয়েবল একটি স্পেশাল সিম্বল দিয়ে শুরু হয়েছে।
  • book.: এই ভেরিয়েবল একটি স্পেশাল ক্যারেক্টার দিয়ে শেষ হয়েছে যা আন্ডারস্কোর বা ডলার সাইন নয়।

যখন আপনি একটি ভেরিয়েবল নাম দিচ্ছেন, আপনাকে নিশ্চিত করতে হবে সেই ভেরিয়েবলটির উদ্দেশ্য স্পষ্ট। একটি প্রোগ্রাম যা ইউজার থেকে তাদের বয়স চায় সেটি "age" নামে একটি ভেরিয়েবলে সংরক্ষণ করতে পারে; "a" বা "number" নামে ভেরিয়েবলে সেটি রাখলে মানে বোঝা যাবে না।

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

boolean javaIsCool = true;

এই ভেরিয়েবল "javaIsCool" তিনটি শব্দ ধারণ করে এবং তাই ক্যামেল কেস ব্যবহার করে। "Is" এবং "Cool" উভয়ই ক্যাপিটালাইজড।

জাভা ভেরিয়েবল নাম কেস-সেনসিটিভ। এর মানে "javaIsCool" এবং "javaiscool" দুটি আলাদা ভেরিয়েবল। সেগুলো একই বেসিক ক্যারেক্টার ধারণ করতে পারে কিন্তু ভিন্ন কেস ব্যবহার করে।

ফাইনাল ভেরিয়েবল ঘোষণা

এই গাইডে আগে আমরা বলেছি যে ভেরিয়েবল রি-অ্যাসাইন করা যায়। এটি শুধু তখন সত্য যখন ভেরিয়েবল final কিওয়ার্ড দিয়ে ঘোষণা করা নয়। এটি একটি ভেরিয়েবলের মানকে ফাইনাল সেট করে, যার মানে সেটি শুধু একটি প্রোগ্রামের দ্বারা পড়া যাবে।

একটি ফাইনাল ভেরিয়েবল ঘোষণা করতে, আপনাকে ভেরিয়েবল ঘোষণার শুরুতে final কিওয়ার্ড ব্যবহার করতে হবে:

final boolean javaIsCool = true;

যদি আমরা এই ভেরিয়েবলটি রি-অ্যাসাইন করার চেষ্টা করি, একটি এরর ফেরত আসবে:

final boolean javaIsCool = true;
javaIsCool = false;

এই কোড ফেল করবে এবং নিচের এরর ফেরত দেবে:

error: cannot assign a variable to a final variable

উপসংহার

ভেরিয়েবল আপনাকে আপনার কোডে একটি লেবেলের পাশে মান সংরক্ষণ করতে দেয়। একবার আপনি একটি ভেরিয়েবল ঘোষণা করলে, আপনি আপনার প্রোগ্রামে সেটি রেফারেন্স করতে পারেন। এর মানে আপনাকে যে মানগুলো একাধিকবার ব্যবহার করতে চান সেগুলো রিপিট করতে হয় না।

ভেরিয়েবল রি-অ্যাসাইন করা যায় যতক্ষণ না সেগুলো final কিওয়ার্ড ব্যবহার করে ঘোষণা করা হয়।

এখন আপনি আপনার জাভা কোডে ভেরিয়েবল প্রোফেশনালের মতো ব্যবহার করতে পারবেন!

  1. জাভাতে static এবং non-static ভেরিয়েবলের পার্থক্য

  2. জাভাতে ভেরিয়েবলের স্কোপ এবং লাইফটাইম

  3. জাভাতে ফাইনাল ভেরিয়েবল

  4. চিট ইঞ্জিন (Complete Guide) বिगিনারদের জন্য