Open In App

Java this Keyword

Last Updated : 02 Jun, 2025
Suggest changes
Share
Like Article
Like
Report

In Java, "this" is a reference variable that refers to the current object, or can be said "this" in Java is a keyword that refers to the current object instance. It is mainly used to,

  • Call current class methods and fields
  • To pass an instance of the current class as a parameter
  • To differentiate between the local and instance variables.

Using "this" reference can improve code readability and reduce naming conflicts.

Java "this" Reference Example 

The this keyword can be used to access instance variables and methods of the object on which the method or constructor is being invoked.

Below is the implementation of "this" reference:

Java
// Java program to demonstrate // this reference // Driver Class public class Person {  // Fields Declared  String name;  int age;  // Constructor  Person(String name, int age)  {  this.name = name;  this.age = age;  }  // Getter for name  public String get_name() { return name; }  // Setter for name  public void change_name(String name)  {  this.name = name;  }  // Method to Print the Details of  // the person  public void printDetails()  {  System.out.println("Name: " + this.name);  System.out.println("Age: " + this.age);  System.out.println();  }  // main function  public static void main(String[] args)  {  // Objects Declared  Person first = new Person("ABC", 18);  Person second = new Person("XYZ", 22);  first.printDetails();  second.printDetails();  first.change_name("PQR");  System.out.println("Name has been changed to: "  + first.get_name());  } } 

Output
Name: ABC Age: 18 Name: XYZ Age: 22 Name has been changed to: PQR 

Explanation:

  • Here, we have defined a "Person" class with two private fields "name" and "age". We have defined the Person class constructor to initialize these fields using "this" keyword. We have also defined "getter and setter" methods for these fields which use this keyword to refer to the current object instance.
  • In the printDetails() method, we have used "this" keyword to refer to the current object instance and print its name, age, and object reference.
  • In the Main class, we have created two Person objects and called the printDetails() method on each object. The output shows the name, age, and object reference of each object instance.

Methods to Use "this" in Java

Following are the ways to use the "this" keyword in Java mentioned below:

  1. Using "this" keyword to refer to current class instance variables.
  2. Using this() to invoke the current class constructor
  3. Using 'this' keyword to return the current class instance 
  4. Using 'this' keyword as the method parameter
  5. Using 'this' keyword to invoke the current class method 
  6. Using 'this' keyword as an argument in the constructor call

1. Using "this" to Refer to Current Class Instance Variables

Java
// Java program for using "this" keyword to // refer current class instance variables class Geeks {  int a;  int b;  // Parameterized constructor  Geeks(int a, int b)  {  this.a = a;  this.b = b;  }  void display()  {  // Displaying value of variables a and b  System.out.println("a = " + a + " b = " + b);  }  public static void main(String[] args)  {  Geeks object = new Geeks(10, 20);  object.display();  } } 

Output
a = 10 b = 20 


2. Using this() to Invoke Current Class Constructor

Java
// Java program for using this() to // invoke current class constructor class Geeks {  int a;  int b;  // Default constructor  Geeks()  {  this(10, 20);  System.out.println(  "Inside default constructor \n");  }  // Parameterized constructor  Geeks(int a, int b)  {  this.a = a;  this.b = b;  System.out.println(  "Inside parameterized constructor");  }  public static void main(String[] args)  {  Geeks object = new Geeks();  } } 

Output
Inside parameterized constructor Inside default constructor 


3. Using "this" Keyword to Return the Current Class Instance 

Java
// Java program for using "this" keyword // to return the current class instance class Geeks {  int a;  int b;  // Default constructor  Geeks()  {  a = 10;  b = 20;  }  // Method that returns current class instance  Geeks get() {   return this;   }  // Displaying value of variables a and b  void display()  {  System.out.println("a = " + a + " b = " + b);  }  public static void main(String[] args)  {  Geeks object = new Geeks();  object.get().display();  } } 

Output
a = 10 b = 20 


4. Using "this" Keyword as a Method Parameter

Java
// Java program for using "this" // keyword as method parameter class Geeks {  int a;  int b;  // Default constructor  Geeks()  {  a = 10;  b = 20;  }  // Method that receives "this"  // keyword as parameter  void display(Geeks obj)  {  System.out.println("a = " + obj.a  + " b = " + obj.b);  }  // Method that returns current class instance  void get() {   display(this);   }  // main function  public static void main(String[] args)  {  Geeks object = new Geeks();  object.get();  } } 

Output
a = 10 b = 20 


5. Using "this" Keyword to Invoke the Current Class Method 

Java
// Java program for using this to invoke current // class method class Geeks {  void display()  {  // calling function show()  this.show();  System.out.println("Inside display function");  }  void show()  {  System.out.println("Inside show function");  }  public static void main(String args[])  {  Geeks g1 = new Geeks();  g1.display();  } } 

Output
Inside show function Inside display function 


6. Using "this" Keyword as an Argument in the Constructor Call

Java
// Java program for using this as an  // argument in constructor call // Class with object of Class B as its data member class A {  B obj;  // Parameterized constructor with object of B  // as a parameter  A(B obj)  {  this.obj = obj;  // calling display method of class B  obj.display();  } } class B {  int x = 5;  // Default Constructor that create an object of A  // with passing this as an argument in the  // constructor  B() { A obj = new A(this); }  // method to show value of x  void display()  {  System.out.println("Value of x in Class B : " + x);  }  public static void main(String[] args)  {  B obj = new B();  } } 

Output
Value of x in Class B : 5 

Advantages of Using "this" Reference

There are many advantages of using "this" reference in Java as mentioned below:

  • It helps to distinguish between instance variables and local variables with the same name.
  • It can be used to pass the current object as an argument to another method.
  • It can be used to return the current object from a method.
  • It can be used to invoke a constructor from another overloaded constructor in the same class.

Disadvantages of Using "this" Reference

Although "this" reference comes with many advantages there are disadvantages of also:

  • Overuse of this can make the code harder to read and understand.
  • Using this unnecessarily can add unnecessary overhead to the program.
  • Using this in a static context results in a compile-time error.
  • Overall, this keyword is a useful tool for working with objects in Java, but it should be used judiciously and only when necessary.

Next Article

Similar Reads

Article Tags :
Practice Tags :