Determine output:
public class Test{
public static void main(String args[]){
MyClass obj = new MyClass();
obj.val = 1;
obj.call(obj);
System.out.println(obj.val);
}
}
class MyClass{
public int val;
public void call(MyClass ref){
ref.val++;
}
}
public class Test{
public static void main(String args[]){
MyClass obj = new MyClass();
obj.val = 1;
obj.call(obj);
System.out.println(obj.val);
}
}
class MyClass{
public int val;
public void call(MyClass ref){
ref.val++;
}
}A. 1
B. 2
C. 3
D. Compilation Error
E. None of these
Answer: Option B
Solution (By Examveda Team)
Step-by-step breakdown:1. The main method in the Test class creates an instance of MyClass called obj.
2. The val field of obj is set to 1 with obj.val = 1.
3. The call method is invoked on obj with obj itself as the argument: obj.call(obj).
4. Inside the call method, the val field of the passed MyClass instance (ref) is incremented by 1 using ref.val++. Since ref refers to obj, this increments obj.val from 1 to 2.
5. Finally, System.out.println(obj.val) prints the value of obj.val, which is now 2.
Therefore, the output of the program is 2.

Initially, obj.val is set to 1.
The call method increments obj.val by 1, making it 2.
The final output printed to the console is 2.
Pls explain this program
how