image-ru-00-14

গোলাপী চুলের এক নারী কেবিনে প্রবেশ করলেন। "আমি ভাবছি, মনুষ্য জাতির সব নারীরই কি এমন চুল থাকে," অ্যামিগো ভাবে।

"হাই! আমার নাম এলিয়েনর ক্যারি। তুমি আমাকে এলি বলতে পারো। আমি এখানে গ্যালাক্টিক রাশের নেভিগেটর।

"হাই এলি," অ্যামিগো নিজের সব ইচ্ছাশক্তি একত্র করে বলে।

"আমি পুরো জাভা ল্যাঙ্গুয়েজের সবচেয়ে আগ্রহজনক অংশ ব্যাখ্যা করতে যাচ্ছি: আর সেটি হল চলক।"

"আমি শুনতে প্রস্তুত। আপনি কোন সেই চলকের কথা বলছেন?"

"চলক হল ডেটা সঞ্চয় করার জন্য ব্যবহৃত বিশেষ সত্তা। যে কোনো ডেটা। জাভায় সব ডেটা সঞ্চয় করা হয় চলকে। এখানে সবচেয়ে কাছাকাছি উপমা হল একটি বাক্স।"

"একটি বাক্স? কী ধরনের বাক্স?"

"যে কোনো পুরানো বাক্স। ধরো তুমি কোনো কাগজের টুকরোয় 13 সংখ্যাটি লিখে সেটাকে একটি বাক্সে রেখেছো। এখন আমরা বলতে পারি যে, বাক্সটিতে 13 মানটি সঞ্চিত আছে।"

"জাভায় প্রতিটি চলকের তিনটি গুরুত্বপূর্ণ বৈশিষ্ট্য আছে: ধরন, নাম, ও মান।"

"আপনি কি এটার মানে স্পষ্ট করতে পারেন?"

"অবশ্যই। আমরা একটি নাম ব্যবহার করি, যাতে আমরা এক চলককে অন্য একটি থেকে আলাদাভাবে চিহ্নিত করতে পারি। এটি কোনো বক্সের ওপরের লেবেলের মত।"

"কোনো চলকে কী ধরনের মান/ডেটা সঞ্চয় করা যেতে পারে সেটির ধরন তা নির্ধারণ করে। আমরা টুপির বাক্সে টু্পি রাখি, জুতার বাক্সে জুতা রাখি, ইত্যাদি।"

"মান হল চলকে সঞ্চিত সুনির্দিষ্ট অবজেক্ট, ডেটা বা তথ্য।"

"আপনি কি আমাকে ধরন সম্পর্কে আরো বলতে পারেন?"

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

"চলকেরও ধরন আছে। এটি শুধুমাত্র নিজের ধরনের অনুরূপ ধরনের মান সঞ্চয় করতে পারে।"

"আপনি বাস্তব জীবনে এটি দেখতে পারেন। ভিন্ন ভিন্ন জিনিস রাখার জন্য বিভিন্ন ধরনের বাক্স ব্যবহার করা হয়:"

"চলক তৈরি (ঘোষণা বা ডিক্লেয়ার) করার জন্য আমরা ধরনের নাম ব্যবহার করি: TypeName variableName."

"এখানে কিছু উদাহরণ দেওয়া হল:"

চলক ডিক্লেয়ার করার জন্য:
প্রথমে ধরন, তারপর নাম।
বর্ণনা
1
int a;
aনামের একটি int চলক তৈরি করুন।
2
String s;
s নামের একটি String চলক তৈরি করুন।
3
double c;
c নামের একটি doubleচলক তৈরি করুন।

"সবচেয়ে সাধারণ দু’টি ধরন হল পূর্ণসংখ্যা (intশব্দ ব্যবহার করে ঘোষণা করা হয়) এবং টেক্সট (Stringশব্দ ব্যবহার করে ঘোষণা করা হয়)।"

"ডাবল কী?"

"ডাবল হল ভগ্নাংশ বা বাস্তব সংখ্যা।"

"আপনি বলেছেন যে চলকের তিনটি বৈশিষ্ট্য আছে: ধরন, নাম, ও মান। কিন্তু আমি শুধু দু’টি দেখতে পাচ্ছি। তাই আমার প্রশ্ন হল, আপনি কিভাবে চলকে মান বরাদ্দ করেন?"

"আমাদের বাক্সের উপমাতে ফিরে যাওয়া যাক। কল্পনা করো যে, তুমি একটি কাগজের টুকরো নিলে, তাতে 42 সংখ্যাটি লিখে সেটাকে একটি বাক্সে রাখলে। এখন বাক্সটিতে 42 মানটি সঞ্চিত আছে।"

"বুঝেছি।"

"আমরা চলকে মান বরাদ্দ করার জন্য একটি বিশেষ অপারেশন (অ্যাসাইনমেন্ট) ব্যবহার করি। অ্যাসাইনমেন্ট এক চলক থেকে আরেকটিতে মান কপি করে। এটি মান অপসারণ করে না। এটি সেগুলোকে কপি করে। ডিস্কের কোনো ফাইলের মত। এটি এভাবে কাজ করে:"

কোড বর্ণনা
1
i = 3;
i চলকে 3 মানটি বরাদ্দ করো।
2
a = 1;
b = a+1;
a চলকে 1 মানটি বরাদ্দ করো।
b চলকে 2 মানটি বরাদ্দ করো।
3
x = 3;
x = x + 1;
x চলকে 3 মানটি বরাদ্দ করো।
পরের লাইনে x এর মান 1 বেড়ে যাবে, ফলে x এর মান 4 এর সমান হবে

"অ্যাসাইনমেন্ট অপারেশন সম্পাদনের জন্য আমরা সমান চিহ্ন (=) ব্যবহার করি।"

"আমি আবার এটি বলব: এটি কোনো তুলনা করছে না। আমরা সমান চিহ্নের ডান দিকের মানকে বাঁ দিকের চলকে কপি করছি। তুলনার জন্য জাভা দু’টি সমান চিহ্ন ব্যবহার করে (==)।"

"আমি জানি কোনো বিড়ালকে কিভাবে একটি চলকের মধ্যে রাখতে হয়। এটি প্রায় অনেকাংশেই একটি প্রোগ্রামের মত।"

"বিড়ালকে কিভাবে ফাঁদে ধরতে হয়:

1. একটি খালি বাক্স নাও।

2. অপেক্ষা করো।"

"না, অ্যামিগো। তুমি একটি বাক্সে একটি মাত্র বিড়ালকেই ঢোকাতে পারো। আহ, আমি বলতে চাইছি যে, তুমি কোনো চলককে একটি মাত্র মানই বরাদ্দ করতে পারো।"

"বুঝেছি। আপনি কি আমাকে চলক তৈরি করার আরও উদাহরণ দিতে পারেন?"

"ঠিক আছে। "আবার বলছি: চলক তৈরি (ঘোষণা বা ডিক্লেয়ার) করার জন্য তোমাকে «TypeName variableName» এর নামটি ব্যবহার করতে হবে।"

কোড ব্যাখ্যা
1
String s;
s নামের একটি String চলক তৈরি করা হয়েছে।
এই চলক টেক্সট সঞ্চয় করতে পারে।
2
int x;
x নামের একটি int চলক তৈরি করা হয়েছে।
এই চলক পূর্ণসংখ্যা সঞ্চয় করতে পারে।
3
int a, b, c;
int d;
a, b, c, ও d নামের int চলক তৈরি করা হয়েছে।
চলকগুলো পূর্ণসংখ্যা সঞ্চয় করতে পারে।

"আচ্ছা, আমি এবার বুঝেছি!"

"মনে রেখো, তুমি একই মেথডে হুবহু একই নামের দু’টি চলক তৈরি করতে পারো না।"

"আলাদা মেথডে কি তা করা যায়?"

"হ্যাঁ, তুমি তা করতে পার। এটি ভিন্ন ভিন্ন বাড়িতে বাক্স রাখার মত।"

"আমি কি আমার পছন্দমত চলকের যে কোনো নাম দিতে পারি?"

"অনেকটা তাই। চলকের নামে স্পেস, +, -, ইত্যাদি থাকতে পারে না। চলকের নামে শুধু বর্ণ ও সংখ্যা ব্যবহার করাই সবচেয়ে ভাল।"

"মনে রেখো, জাভা বড় ও ছোট হাতের অক্ষরের বিষয়ে সংবেদনশীল। int a এবং Int a সমান নয়।"

"যাই হোক, তুমি জাভাতে একটি চলক তৈরি করতে পারো এবং একই সাথে এতে একটি মান বরাদ্দ করতে পারো। এটি সময় ও স্থান বাঁচায়।"

সংক্ষিপ্ত কোড সমতুল্য কিন্তু আরও লম্বা কোড
1
int a = 5;
int b = 6;
int a;
a = 5;
int b;
b = 6;
2
int c = 7;
int d = c+1;
int c;
c = 7;
int d;
d = c+1;
3
String s = "I'm Amigo";
String s;
s = "I'm Amigo";

"এটি অনেক সংক্ষিপ্ত ও পরিষ্কার উপায়।"

"আমরা এভাবেই করি।"

"জাভার প্রত্যেক শিক্ষানবিশকে দু’টি ধরনের সঙ্গে পরিচিত হতে হবে: int (পূর্ণসংখ্যা)String (টেক্সট/স্ট্রিং)।"

"int ধরনটি তোমাকে চলকে সংখ্যা সঞ্চয় করতে এবং সেগুলোর ওপরে অপারেশন সম্পাদন করতে দেয়, যেমন: যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি।"

কোড ব্যাখ্যা
1
int x = 1;
int y = x*2;
int z = 5*y*y + 2*y + 3;
x সমান 1
y সমান 2
z সমান 20+4+3, যা 27 এর সমান
2
int a = 5;
int b = 1;
int c = (a-b) * (a+b);
a সমান 5
b সমান 1
c সমান 4*6, যা 24 এর সমান
3
int a = 64;
int b = a/8;
int c = b/4;
int d = c*3;
a সমান 64
b সমান 8
c সমান 2
d সমান 6

"বুঝেছি। প্রোগ্রামিং কি সবসময় এরকম সহজ?"

"আসলেই, হ্যাঁ।"

"ভাল! তাহলে, এরপর কী?"

String ধরনটি তোমাকে টেক্সটের লাইন সঞ্চয় করতে দেয়, যা 'স্ট্রিং' নামেও পরিচিত।

"জাভায় স্ট্রিং বরাদ্দ করার জন্য তোমাকে টেক্সটকে উদ্ধৃতি চিহ্নের ভিতরে রাখতে হবে। এখানে কিছু উদাহরণ দেওয়া হল:"

কোড ব্যাখ্যা
1
String s = "Amigo";
s এর মধ্যে আছে "Amigo"
2
String s = "123";
s এর মধ্যে আছে "123"
3
String s = "123 + 456";
s এর মধ্যে আছে "123 + 456"

"বুঝেছি। এটি খুব কঠিন মনে হয় না।"

"তোমার জন্য এখানে আরও একটি কৌতূহলোদ্দীপক তথ্য দিলাম।"

"তুমি যোগ চিহ্ন (+) ব্যবহার করে স্ট্রিং যুক্ত করতে পারো। এ উদাহরণগুলো দেখো।"

কোড ব্যাখ্যা
1
String s = "Amigo" + " is the best";
s এর মধ্যে আছে "Amigo is the best".
2
String s = "";
s-এ একটি খালি স্ট্রিং আছে - এমন এক স্ট্রিং যার মধ্যে কোনো সংকেতই নেই।
3
int x = 333;
String s = "Amigo" + x;
s এর মধ্যে আছে "Amigo333"

"তাহলে স্ট্রিং এর সঙ্গে সংখ্যা যোগ করা যায় কি?"

"হ্যাঁ, কিন্তু মনে রেখো, তুমি স্ট্রিং ও সংখ্যা যোগ করার সময় যোগফল সবসময় স্ট্রিং হবে।"

"আমি আপনার উদাহরণ থেকে এটি বুঝতে পেরেছি।"

"তুমি এতটা বুদ্ধিমান হলে পর্দায় কোনো চলককে কিভাবে দেখানো যায় তা বুঝতে চেষ্টা করো ।"

"হুম। চলক? পর্দায়? কিছুই মনে আসছে না।"

"আসলে এটি বেশ সহজ। পর্দায় কোনো কিছু দেখানোর জন্য, আমরা একটি System.out.println() কম্যান্ড ব্যবহার করি, আর আমরা যা প্রিন্ট করতে চাই সেটাকে আর্গুমেন্ট হিসেবে পাঠাই।"

কোড পর্দার আউটপুট
1
System.out.println("Amigo");
Amigo
2
System.out.println("Ami"+"go");
Amigo
3
String s = "Amigo";
System.out.println(s);
Amigo
4
String s = "Am";
System.out.println(s+"igo");
Amigo

"আহা! এটি সব কিছু অনেক স্পষ্ট করে দিল।"

"চমৎকার। তোমার জন্য এখানে আরও তিনটি অনুশীলনী দেওয়া হল।"