Variable Hiding in java, intro for this keyword

Java Programming Language Class, Object and Methods in java (Article) Class, Object and Methods in java (Program)

1406

Program:

<span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">VariableHiding</span><span class="pln"> </span><span class="pun">{</span><span class="pln">

 </span><span class="kwd">int</span><span class="pln"> variable </span><span class="pun">=</span><span class="pln"> </span><span class="lit">5</span><span class="pun">;</span><span class="pln">

 </span><span class="kwd">void</span><span class="pln"> method</span><span class="pun">(</span><span class="kwd">int</span><span class="pln"> variable</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
  variable </span><span class="pun">=</span><span class="pln"> </span><span class="lit">20</span><span class="pun">;</span><span class="pln">
  </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Value of variable :"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> variable</span><span class="pun">);</span><span class="pln">
  </span><span class="pun">}</span><span class="pln">

  </span><span class="kwd">void</span><span class="pln"> method</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
  </span><span class="kwd">int</span><span class="pln"> variable </span><span class="pun">=</span><span class="pln"> </span><span class="lit">50</span><span class="pun">;</span><span class="pln">
  </span><span class="typ">System</span><span class="pun">.</span><span class="kwd">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="str">"Value of variable :"</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> variable</span><span class="pun">);</span><span class="pln">
 </span><span class="pun">}</span><span class="pln">

 </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> main</span><span class="pun">(</span><span class="typ">String</span><span class="pln"> args</span><span class="pun">[])</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
 </span><span class="typ">VariableHiding</span><span class="pln"> obj </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">VariableHiding</span><span class="pun">();</span><span class="pln">

 obj</span><span class="pun">.</span><span class="pln">method</span><span class="pun">(</span><span class="lit">20</span><span class="pun">);</span><span class="pln">
 obj</span><span class="pun">.</span><span class="pln">method</span><span class="pun">();</span><span class="pln">
 </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

</span><span class="com">/*
this keyword can be very useful in the handling of Variable Hiding.
We can not create two instance/local variables with the same name.
However it is legal to create one instance variable &amp; one local variable
or Method parameter with the same name. In this scenario the 
local variable will hide the instance variable this is called Variable Hiding.

*/</span>

Output:

Value of variable :20
Value of variable :50
Press any key to continue . . .

Explanation:

As you can see in the example above the instance variable is hiding and the value of the local variable(or Method Parameter is displayed not instance variable. To solve this problem use this keyword with a field to point to the instance variable instead of the local variable.

This Particular section is dedicated to Programs only. If you want learn more about Java Programming Language. Then you can visit below links to get more depth on this subject.