Vidyalelo
Java Programming · Q52

Constructors and Methods

Programming · Java Programming · question 52

Q52

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++;

A.
1
B.
2
Answer
C.
3
D.
Compilation Error
E.
None of these

Answer: Option B

Solution

Answer: Option B
Solution:
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.