this: is called as reference variable because it always refer an current object.
Eg:
Is this valid ?
Obj is local variable i.e we can't access that variable outside main method.
In above code snippet value is a instance variable.
So we must need an object or object or object reference to access value;
Then still valid the above snippet ?
- Yes, it is valid.
When we call the show with object reference JVM calls the value with current object i.e this
Eg:
this constructor:
Can we have more then one constructor in same class ?
- Yes, we can have with different parameters.
How do we call same class constructor from another constructor in a class?
- Using this parameter constructor we can call.
But rule is this statement must be the first statement in a constructor other wise compile time error will come.
Why?
Because JVM internally call the super class constructor from every constructor.
So, this statement must be first statement in a constructor.
Eg:
Eg:
Is this valid ?
public class MleClass{ int value=10; void show(){ System.out.println(value); } public static void main(){ MleClass obj =new MleClass(); ob.show(); } }
Obj is local variable i.e we can't access that variable outside main method.
In above code snippet value is a instance variable.
So we must need an object or object or object reference to access value;
Then still valid the above snippet ?
- Yes, it is valid.
When we call the show with object reference JVM calls the value with current object i.e this
void show(){ System.out.println(this.value); // JVM internally adds the reference this. }
Eg:
public class MleClass{ int value=10; void show(){ int value =100; System.out.println(value); // Here we need this explicitly. System.out.println(this.value); } public static void main(){ MleClass obj =new MleClass(); ob.show(); } }
this constructor:
Can we have more then one constructor in same class ?
- Yes, we can have with different parameters.
public class MleClass{ MleClass(){ } MleClass(String param){ } }
How do we call same class constructor from another constructor in a class?
- Using this parameter constructor we can call.
But rule is this statement must be the first statement in a constructor other wise compile time error will come.
Why?
Because JVM internally call the super class constructor from every constructor.
So, this statement must be first statement in a constructor.
Eg:
public class MleClass{ MleClass(){ // If we don't put this statement her JVM calls the super class constructor with super(). this("There?"); } MleClass(String param){ System.out.println("Yes, I'm here!"); } }
No comments:
Post a Comment