OOP তে this কীওয়ার্ড এর অনেকগুলো ব্যবহার রয়েছে। সেগুলোর মধ্যে সবচে’ বেশি ব্যবহারগুলো আমরা আলোচনা করবো।
১. যেমন ধরো তোমার একটি ইন্সট্যান্স ভেরিয়েবল আছে name নামে আবার একটা মেথড তৈরী করেছ তাতেও তোমাকে কাজের প্রয়োজনে name নামের একটি প্যারামিটার রাখতে হচ্ছে।
কিন্তু যখন মেথডের ভেতরে কোড লিখবে এবং name ভেরিয়েবলটি ব্যবহার করবে কোডের ভেতর তখন প্রোগ্রাম কিভাবে বুঝবে তুমি কোন name ভেরিয়েবল ব্যবহার করতে চাচ্ছ।
এসো আমরা কোডেই দেখি:


আউটপুট:

দেখো দুটো লাইনেই প্যারামিটারে পাঠানো ভ্যালুটা ব্যবহার করেছে। ইন্সট্যান্স ভেরিয়েবলের ভ্যালু সে ব্যবহারই করে নি। এখন কোডটি যদি এরকম করি:

আউটপুট:

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



আর এখানে কিন্তু তুমিই প্যারামিটার না পাঠিয়েও অবজেক্ট তৈরী করতে পারবে।

তখন ডিফল্ট কন্সট্রাক্টরটি কল হবে। যেহেতু আমাদের ডিফল্ট ক্ন্সট্রাক্টরে কোন প্যারামিটার নাই, তাই প্যারামিটার না দিলে ডিফল্ট কন্সট্রাক্টরটি কল হবে। আর আউটপুট হবে এরকম।

আর যদি তোমার অনেকগুলো কন্সট্রাক্টর থাকে এবং this(); ব্যবহার করে সেই কন্সট্রাক্টর থেকে ডিফল্ট কন্সট্রাক্টরকে কল করো তাহলে ডিফল্ট কন্সট্রাক্টর এবং ওই কন্সট্রাক্টর দুটোই কিন্তু কল হবে। আমাদের প্রথম উদাহরণেই যেটা দেখেছিলাম।

দেখো দুটি কন্সট্রাক্টরের আউটপুটই দেখাচ্ছে।
৩. আমাদের ১ নাম্বার উদাহরণে কি বলেছিলাম দেখো:

অর্থাৎ তুমি যখন কোন মেথডের মধ্যে বা কোথাও কোন ইন্সট্যান্স ভেরিয়েবলকে ব্যবহার করো তখন জাভা অটোমেটিক সেটার আগে একটা this. বসিয়ে নেয়। যার কারণেই তুমি সরাসরি ইন্সট্যান্স ভেরিয়েবলকে ব্যবহার করতে পারো।
একই কথা মেথডের ক্ষেত্রেও প্রযোজ্য। আমরা এর আগে যত বার কোন মেথডের মধ্যে আরেকটি মেথডকে কল করেছি তখন this. ব্যবহার করি নি। this. ব্যবহার না করলে জাভা অটোমেটিক বুঝে নেয় যে এটি এই ক্লাশেরই মেথড। বা অটোমেটিক সেটার সামনে this. বসিয়ে নেয়। তার অর্থ হলো সরাসরি একই ক্লাশের কোন মেথডকে কল করা আর this. দিয়ে কল করা একই কথা।


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