This keyword in Java
this keyword in Java
1.this is a keyword that refers to the current object of class.
2.It can be used to replace local variable with class level variable.
3.It is also used to call current class method/function.
4.It is also used to call current class overloaded constructor.
1. this keyword as a variable hiding
By using this keywrod we can replace local variable with instance varible. For better understanding see the below example.
class Rectangle
{
//declaring instance variable
int height=10,width=20;
public void area()
{
//declaring local varibael
int height=5,width=6,ar;
//using local variable
ar=height*width;
System.out.println("Area 1="+ar);
//using class level(instance) variable
ar=this.height*this.width;
System.out.println("Area 2="+ar);
}
}
class Easy
{
public static void main(String[] args)
{
//Creating instance(object) of class
Rectangle obj=new Rectangle();
//calling class function
obj.area();
}
}
/*
### Output ###
Area 1=30
Area 2=200
*/
2. this keyword with function
By using this keywrod we can also call a function of class without creating instance(object) of that class. For better understanding see the below example.
class Geometry
{
public void rectangle_area(int height,int width)
{
int ar=height*width;
System.out.println("Area of rectangle="+ar);
}
public void square_area(int side)
{
int ar=side*side;
System.out.println("Area of square="+ar);
//calling function using this keyword
this.rectangle_area(12, 13);
}
}
class Easy
{
public static void main(String[] args)
{
//Creating instance(object) of class
Geometry obj=new Geometry();
//calling class function
obj.square_area(12);
}
}
/*
### Output ###
Area of square=144
Area of rectangle=156
*/
3. this keyword constructor
By using this keywrod we can also call a function of class without creating instance(object) of that class. For better understanding see the below example.
class Rectangle
{
//parameterised constructor
Rectangle(int height,int width)
{
int ar=height*width;
System.out.println("Area of rectangle="+ar);
}
//default constructor
public Rectangle()
{
//calling parameterised constructor
this(12,13);
System.out.println("I am inside default constructor");
}
}
class Easy
{
public static void main(String[] args)
{
//Creating instance(object) of class
Rectangle obj=new Rectangle();
}
}
/*
### Output ###
Area of rectangle=156
I am inside default constructor
*/