জাভাতে "this" কীওয়ার্ড একটি ইনস্ট্যান্স মেথড বা কনস্ট্রাক্টরের ভিতরে বর্তমান অবজেক্টের রেফারেন্স হিসেবে ব্যবহৃত হয়। এর মাধ্যমে আপনি একটি ক্লাসের সদস্যদের যেমন কনস্ট্রাক্টর, ভেরিয়েবল এবং মেথডকে রেফার করতে পারেন।
"this"-কে রেফারেন্স অ্যাসাইন করা
সংজ্ঞা অনুযায়ী "this" একটি কীওয়ার্ড যা বর্তমান অবজেক্টের রেফারেন্স হিসেবে কাজ করে (যে অবজেক্টের কনস্ট্রাক্টর/মেথড থেকে আপনি এটি ব্যবহার করছেন), এর মান ফিক্সড। তাই আপনি এতে নতুন একটি রেফারেন্স মান অ্যাসাইন করতে পারবেন না।Moreover, এটি শুধু একটি কীওয়ার্ড, ভেরিয়েবল নয়।
তবুও, যদি আপনি এতে একটি রেফারেন্স মান অ্যাসাইন করার চেষ্টা করেন তবে কম্পাইলেশন এরর হবে।
উদাহরণ
নিচের জাভা প্রোগ্রামে, ক্লাস (ExampleClass)-এর দুটি প্রাইভেট ভেরিয়েবল name, age এবং একটি প্যারামিটারাইজড কনস্ট্রাক্টর আছে যা এই ভেরিয়েবলগুলো ইনস্ট্যানশিয়েট করে। display নামক একটি মেথড থেকে আমরা "this"-এ একটি নতুন মান অ্যাসাইন করার চেষ্টা করছি।
public class ExampleClass {
private String name;
private int age;
public ExampleClass(String name, int age){
this.name = name;
this.age = age;
}
public void display(){
this = new ExampleClass("krishna", 23);
}
}
কম্পাইল-টাইম এরর
কম্পাইল করলে এই প্রোগ্রাম নিচের এরর দেবে:
ExampleClass.java:14: error: cannot assign a value to final variable this
this = new ExampleClass("krishna", 23);
^
1 error