দিস (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(); } }