'নিজ' (This) কিউওয়ার্ড
নিজ হলো যুক্তির একটি বিশেষ কিউওয়ার্ড যা বর্তমান অবজেক্টকে নির্দেশ করে। এটি মূলত একটি আয়নার মতো কাজ করে; যখনই কোনো ক্লাসের ভেতর নিজ ব্যবহার করা হয়, সে আসলে নিজেকেই (বা নিজের প্রপার্টি ও মেথডকে) দেখতে পায়। অন্য ভাষায় একে this বলা হয়।
সবচেয়ে বড় সমস্যা হয় যখন কোনো মেথডের প্যারামিটারের নাম এবং ক্লাসের ভেরিয়েবলের নাম একই হয়ে যায়। তখন কোনটি কার তা কম্পিউটারকে বোঝানোর জন্য নিজ. ব্যবহার করা জরুরি।
১. কেন 'নিজ' ব্যবহার করবেন?
প্যারামিটার এবং ক্লাসের ভেরিয়েবলের নাম এক হলে বিভ্রান্তি দূর করতে এটি ব্যবহৃত হয়।
ক্লাস মানুষ {
বাক্য নাম;
সেট_নাম(বাক্য নাম) {
নিজ.নাম = নাম; // বামেরটি ক্লাসের প্রপার্টি, ডানেরটি বাইরে থেকে আসা নাম
}
}
২. নিজের অন্য মেথডকে কল করা
একটি ক্লাসের ভেতর এক মেথড থেকে অন্য কোনো মেথডকে ডাকতে চাইলে নিজ ব্যবহার করা সবচেয়ে নিরাপদ পদ্ধতি।
ক্লাস ক্যালকুলেটর {
সালাম() {
দেখাও "গণনা শুরু করছি...";
নতুনলাইন;
}
যোগ(পূর্ণসংখ্যা ক, পূর্ণসংখ্যা খ) {
নিজ.সালাম(); // নিজের অন্য একটি কাজকে ডাকলো
দেখাও "ফলাফল: " >> (ক + খ);
নতুনলাইন;
}
}
৩. বাস্তব উদাহরণ: পণ্য আপডেট
পণ্য আপডেট করার সময় নিজ ব্যবহার করলে কোড অনেক বেশি স্পষ্ট হয়।
ক্লাস প্রোডাক্ট {
দশমিক দাম;
আপডেট_দাম(দশমিক দাম) {
নিজ.দাম = দাম; // কনফিউশন দূর হলো
}
}
নিজ. ব্যবহার করার অভ্যাস করুন।
৪. ইন-ডেপথ উদাহরণ: চেইন মেথড কলিং
প্রোফাইল সেটিংস আপডেট করার একটি উদাহরণ:
ক্লাস প্রোফাইল {
বাক্য নাম;
পূর্ণসংখ্যা বয়স;
নাম_লিখো(বাক্য ন) {
নিজ.নাম = ন;
}
বয়স_লিখো(পূর্ণসংখ্যা ব) {
নিজ.বয়স = ব;
}
সব_দেখাও() {
দেখাও "ইউজার: " >> নিজ.নাম >> ", বয়স: " >> নিজ.বয়স;
নতুনলাইন;
}
}
প্রোফাইল ইউজার১ = নতুন প্রোফাইল();
ইউজার১.নাম_লিখো("আরিফ");
ইউজার১.বয়স_লিখো(২৫);
ইউজার১.সব_দেখাও();