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

জাভা this কীওয়ার্ড ব্যবহার পদ্ধতি

জাভা this কীওয়ার্ড কীভাবে ব্যবহার করবেন

জাভা কোডিং শুরু করলে মেথড বা কনস্ট্রাক্টরে this কীওয়ার্ড ব্যবহৃত দেখা যাবে। this কীওয়ার্ড মেথড বা কনস্ট্রাক্টরের ভেতর বর্তমান অবজেক্টকে রেফার করে এবং জাভায় এর ব্যাপক ব্যবহার রয়েছে।

এই টিউটোরিয়ালে জাভা this কীওয়ার্ড সম্পর্কে, কীভাবে এবং কেন ব্যবহার করা হয় সেটি শিখবেন। আর্টিকেলে উদাহরণও দেওয়া আছে।

জাভা Methods এবং Constructors

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

public class PrintMessage { public static void main(String[] args) { System.out.println("It's Monday!"); } }
এক্সিকিউট করলে আউটপুট: It's Monday!

কনস্ট্রাক্টর মেথডের মতো কিন্তু অবজেক্ট ইনস্ট্যানশিয়েট হলে আহ্বান করা হয়। উদাহরণ: day ইনস্ট্যান্স ভেরিয়েবলকে "Monday" সেট করে প্রিন্ট করে।

class Monday { private Monday() { day = "Monday"; } public static void main(String[] args) { Monday day_of_the_week = new Monday(); System.out.println("It's " + day_of_the_week.day); } }
আউটপুট: It's Monday! কনস্ট্রাক্টর সম্পর্কে আরও জানতে আমাদের ফুল গাইড পড়ুন। এখন this কীওয়ার্ড আলোচনা করি।

জাভা this কীওয়ার্ড

জাভায় this কীওয়ার্ড মেথড বা কনস্ট্রাক্টরের ভেতর বর্তমান অবজেক্টকে রেফার করে। উপরের কনস্ট্রাক্টর উদাহরণে this এবং ইনস্ট্যানশিয়েটড Monday() অবজেক্টের ভ্যালু প্রিন্ট করি:

class Monday { private String day; private Monday() { day = "Monday"; System.out.println(this); } public static void main(String[] args) { Monday day_of_the_week = new Monday(); System.out.println("It's " + day_of_the_week.day); System.out.println(day_of_the_week); } }
আউটপুট:
Main@d716361 It's Monday Main@d716361
প্রথম লাইন this ভ্যালু (অবজেক্ট ইনস্ট্যানশিয়েশনের সময়)। দ্বিতীয় লাইন day ভ্যালু। তৃতীয় লাইন day_of_the_week অবজেক্ট ভ্যালু। this এবং day_of_the_week সমান—অর্থাৎ this বর্তমান অবজেক্টকে রেফার করে।

জাভা this কীওয়ার্ডের Use Cases

this কীওয়ার্ড মূলত দুটি পরিস্থিতিতে ব্যবহারি:

  • ভেরিয়েবল নাম ডিস्एমবিগুয়েট করার জন্য
  • আর্গুমেন্ট হিসেবে this পাস করার জন্য
this() ভ্যারিয়েন্ট কনস্ট্রাক্টর ওভারলোডিংয়ে ব্যবহার হয়, তবে এডভান্সড ব্যবহার, এখানে আলোচনা নেই।

ভেরিয়েবল নাম ডিস्एমবিগুয়েট করতে this ব্যবহার

জাভায় একই স্কোপে একই নামের দুটি ভেরিয়েবল থাকতে পারে না। একই নাম দিলে প্রোগ্রাম লজিক প্রভাবিত হয়। this ব্যবহার করে এই সীমাবদ্ধতা पार করা যায়। this ספেসিফিক ভেরিয়েবলকে অবজেক্টে অ্যাসাইন করে, যাতে এবং ভেরিয়েবল দুটোর ভ্যালু সংরক্ষিত থাকে।

উদাহরণ: পঞ্চম শ্রেণির অনার রোলে যোগ হওয়া ছাত্রের নাম ট্র্যাক করা।

class HonorRoll { String studentName; HonorRoll(String studentName) { this.studentName = studentName; } public static void main(String[] args) { HonorRoll alex = new HonorRoll("Alex"); System.out.println("New honor roll inductee: " + alex.studentName); } }
আউটপুট:
New honor roll inductee: Alex
এখানে this.studentName = studentName দিয়ে কনস্ট্রাক্টর প্যারামিটার studentName (Alex) কে ইনস্ট্যান্স ভেরিয়েবল this.studentName এ অ্যাসাইন করলাম। this না থাকলে আউটপুট null আসত। জাভা কম্পাইলারকে ডিস्एমবিগুয়েট করতে this দরকার।

আর্গুমেন্ট হিসেবে this পাস করা

this কীওয়ার্ড বর্তমান অবজেক্টকে অন্য মেথডে পাস করার জন্য ব্যবহার হয়। উদাহরণ: কফি শপের কফি বিনস স্টক ট্র্যাকিং অ্যাপ।

class AddStock { int stockToAdd; int stockTotal; AddStock(int stockToAdd, int stockTotal) { this.stockToAdd = stockToAdd; this.stockTotal = stockTotal; System.out.println("Current stock: " + this.stockTotal); calculateNewStock(this); System.out.println("New stock: " + this.stockTotal); } void calculateNewStock(AddStock s) { s.stockTotal += s.stockToAdd; } } class Main { public static void main(String[] args) { AddStock newStockValue = new AddStock(10, 9); } }
আউটপুট:
Current stock: 9 New stock: 19
ব্যাখ্যা: AddStock ক্লাসে দুটি ভ্যালু নেওয়া হয়, calculateNewStock() মেথড কল করা হয়। Main ক্লাস দিয়ে ইনস্ট্যান্স তৈরি করলাম ১০ এবং ৯ ভ্যালু দিয়ে। this আর্গুমেন্ট হিসেবে calculateNewStock()-এ পাস করলাম যাতে সেই মেথডে ভেরিয়েবলগুলো অ্যাক্সেস করতে পারে।

উপসংহার

জাভা this কীওয়ার্ড মেথড বা কনস্ট্রাক্টরের ভেতর বর্তমান অবজেক্টকে রেফার করে। মূল دوটি ব্যবহার: ভেরিয়েবল নাম ডিস्एমবিগুয়েট করা এবং আর্গুমেন্ট হিসেবে পাস করা। এই টিউটোরিয়ালে উদাহরণসহ তিনটি কন্টেক্সটে this ব্যবহার আলোচনা করা হয়েছে। এখন আপনি এক্সপার্টের মতো জাভা this কীওয়ার্ড ব্যবহার করতে পারবেন।

  1. জাভাতে Swing থ্রেড-সেফ কি?

  2. জাভাতে 'this'-কে রেফারেন্স অ্যাসাইন করা সম্ভব কি?

  3. জাভাতে নেস্টেড ইন্টারফেস

  4. জাভাতে ইন্টারফেস