Achin Gupta wrote:name=name;
means this.name=name;
No it doesn't.
name=name takes the value of the parameter
name, and assigns it to that same
parameter name. The
this.name=name you mentioned will take the same value, but the extra
this. causes that value to be assigned to the instance field, not the parameter.