Reputation: 9
when a variable is initialize both in local scope as well as global scope how can we use global scope without using this
keyword in the same class?
Upvotes: 0
Views: 2277
Reputation: 675
public class VariableScope {
int i=12;// Global
public VariableScope(int i){// local
System.out.println("local :"+i);
System.out.println("Global :"+getGlobal());
}
public int getGlobal(){
return i;
}
}
Upvotes: 2
Reputation: 240860
class MyClass{
int i;//1
public void myMethod(){
i = 10;//referring to 1
}
public void myMethod(int i){//2
i = 10;//referring to 2
this.i = 10 //refering to 1
}
}
Also See :
Upvotes: 7
Reputation: 388316
If you are scoping the variable reference with this
it will always point to the instance variable.
If a method declares a local variable that has the same name as a class-level variable, the former will 'shadow' the latter. To access the class-level variable from inside the method body, use the this keyword.
Upvotes: 2
Reputation: 43088
It is impossible without this. The phenomenon is called variable hiding.
Upvotes: 2
Reputation: 41087
If you do not use this
it will always be the local variable.
Upvotes: 2