This refers to the current object you're method is working with. Note that this can only be referenced in a non-static method (otherwise, there is no object you're working with)
public static void main(String[] args)
{
System.out.println(this.toString()); // Syntax error: We're inside a static method right now
}
It is often used to clear-up which field/variable you are referring to because by default, local variables will cover up instance variables and static fields.
public Class A
{
int number;
public A(int number)
{
this.number = 5; // The field number
System.out.println("This number is " + this.number);
System.out.println("The local number is " + number);
}
public static void main(String[] args)
{
new A(3);
}
}