Using ‘this’ In Constructors


Introduction

When assigning values to attributes within a constructor, it's common to use parameter names that match the attribute names for clarity. However, using the same name for instance variables and constructor parameters can make code less clear. The this keyword explicitly distinguishes instance variables from parameters.

Example Using ‘this’ 

public class Rectangle {
    private int width;
    private int height;

    // Constructor using 'this' to differentiate instance variables
    public Rectangle(int width, int height) {
        this.width = width;  // 'this.width' refers to the attribute, 'width' is the parameter
        this.height = height;
    }

    public void displayDimensions() {
        System.out.println("Width: " + width + ", Height: " + height);
    }

    public static void main(String[] args) {
        Rectangle rect = new Rectangle(6, 5);
        rect.displayDimensions(); // Output: Width: 6, Height: 5
    }
}

Conclusion

The this keyword in Java is a powerful tool that helps differentiate between class attributes and method parameters when they share the same name. While you can avoid using this by giving parameters distinct names, such as prefixing them with an underscore, using this provides consistency and aligns with common Java best practices. By adopting this, you maintain a clear and uniform structure in your classes, making your code easier to understand and maintain.