দিস (this) কীওয়ার্ড
জাভা
জাভাতে, দিস কীওয়ার্ড বহুলভাবে ব্যবহৃত হয়। এটি মূলত একটি “Reference Variable” যা কারেন্ট (current) অবজেক্টটিকে নির্দেশ করে।
- দিস কীওয়ার্ড ব্যবহার করে কারেন্ট ক্লাসের মেথডকে ইনভোক করা যায়। কীওয়ার্ডটি ব্যবহার না করলে কম্পাইলার স্বয়ংক্রিয়ভাবে মেথডটি ইনভোক করার সময় এই কীওয়ার্ডটি যুক্ত করে নেয়।
- this() কনস্ট্রাক্টর (কন্সট্রাক্টর সম্পর্কে আমরা পরবর্তীতে জানব) কলটি কারেন্ট ক্লাস কনস্ট্রাক্টরকে কল করতে ব্যবহার করা হয়। এটি কনস্ট্রাক্টর
- পুনরায় ব্যবহার করতে ব্যবহৃত হয় যা কনস্ট্রাক্টর চেইনিং নামেও পরিচিত।
এই কীওয়ার্ডটিকে আর্গুমেন্ট হিসেবে মেথডেও পাস করা যায়।
উদাহরণঃ
class Example1 {
void sayHelloM() {
System.out.println(“Hello from sayHelloM”);
}
void sayHelloN() {
System.out.println(“Hello from sayHelloN”);
sayHelloM(); // Equivalent to this.sayHelloM()
}
}
class Example2 {
Example2() {
System.out.println(“Constructor: Hello from Example2”);
}
Example2(int x) {
this(); // Calls the default constructor
System.out.println(“Parameterized Constructor: ” + x);
}
}
class Example3 {
void invokeMethod(Example3 obj) {
System.out.println(“Method is invoked”);
}
void performOperation() {
invokeMethod(this); // Calls method invokeMethod with ‘this’ as an argument
}
}
public class TestCombinedExamples {
public static void main(String[] args) {
Example1 example1 = new Example1();
example1.sayHelloN();
Example2 example2 = new Example2(10);
Example3 example3 = new Example3();
example3.performOperation();
}
}
সি#
সি# এ, দিস কীওয়ার্ড কারেন্ট অবজেক্টটিকে নির্দেশ করে এবং একটি এক্সটেনশান মেথডের প্রথম প্যারামিটারের একটি মডিফায়ার হিসেবে কাজ করে।
- একই নামের ফলে হিডেন মেম্বারদের কোয়ালিফাই করা।
- কারেন্ট অবজেক্টকে একটি মেথডে আর্গুমেন্ট হিসেবে পাঠানো।
- indexers ডিক্লেয়ার করা।
উদাহরণঃ
class Employee {
public string Name { get; }
public decimal Salary { get; }
public Employee(string name, decimal salary) {
Name = name;
Salary = salary;
}
public void PrintEmployee() {
Console.WriteLine(“Name: {0}\nSalary: {1:C}”, Name, Salary);
Console.WriteLine(“Taxes: {0:C}”, Tax.CalculateTax(Salary));
}
}
class Tax {
public static decimal CalculateTax(decimal salary) {
// A simple tax calculation (8% of the salary)
return 0.08m * salary;
}
}
class MainClass {
static void Main() {
// Create an employee object:
Employee employee1 = new Employee(“John Doe”, 40000);
// Display employee information, including taxes:
employee1.PrintEmployee();
}
}