?
Determine output:
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++;
}
}
Answer & Solution
Correct Answer:
Option
B
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.
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.
Join the Discussion
Login to post a comment or share your explanation.
LoginThe call method increments obj.val by 1, making it 2.
The final output printed to the console is 2.