this
শব্দ প্রাথমিকভাবে তিনটি পরিস্থিতিতে ব্যবহার করা হয়। প্রথম এবং সর্বাধিক সাধারণ হল ভেরিয়েবল রেফারেন্সগুলি ছিন্ন করার সেটার পদ্ধতিতে। দ্বিতীয়টি যখন অন্য শ্রেণীর কোনও পদ্ধতির আর্গুমেন্ট হিসাবে বর্তমান বর্গ উদাহরণটি পাস করার প্রয়োজন হয়। তৃতীয়টি হল কনস্ট্রাক্টরের মধ্য থেকে বিকল্প কন্সট্রাক্টরদের কল করার উপায় হিসাবে।
কেস 1:this
ভেরিয়েবল রেফারেন্সগুলি ছিন্ন করতে ব্যবহার করা। জাভা সেটার পদ্ধতিগুলিতে আমরা সাধারণত বেসরকারী সদস্য ভেরিয়েবলটি সেট করার চেষ্টা করছি সেই একই নামে একটি যুক্তিতে পাস করি। আমরা তখন যুক্তি ধার্য x
করতে this.x
। এটি পরিষ্কার করে দেয় যে আপনি উদাহরণের পরিবর্তনশীল "নাম" পরামিতি "নাম" এর মান নির্ধারণ করছেন।
public class Foo
{
private String name;
public void setName(String name) {
this.name = name;
}
}
কেস 2:this
একটি যুক্তি হিসাবে অন্য বস্তুর কাছে প্রেরণ হিসাবে ব্যবহার করা।
public class Foo
{
public String useBarMethod() {
Bar theBar = new Bar();
return theBar.barMethod(this);
}
public String getName() {
return "Foo";
}
}
public class Bar
{
public void barMethod(Foo obj) {
obj.getName();
}
}
কেস 3:this
বিকল্প নির্মাণকারীদের কল করতে ব্যবহার করা। মন্তব্যে, ত্রিনিথিস সঠিকভাবে অন্য একটি সাধারণ ব্যবহার নির্দেশ করেছেন this
। যখন আপনার একক শ্রেণীর জন্য একাধিক কনস্ট্রাক্টর রয়েছে, আপনি this(arg0, arg1, ...)
আপনার পছন্দসই আরেকটি কনস্ট্রাক্টরকে কল করতে ব্যবহার করতে পারেন , তবে আপনি যদি আপনার নির্মাণকারীর প্রথম লাইনে এটি করেন।
class Foo
{
public Foo() {
this("Some default value for bar");
//optional other lines
}
public Foo(String bar) {
// Do something with bar
}
}
আমি এও this
জোর দিয়ে দেখেছি যে একটি উদাহরণ পরিবর্তনশীল উল্লেখ করা হচ্ছে (ছদ্মবেশের প্রয়োজনকে বোঝায়) তবে এটি আমার মতে বিরল ঘটনা।