ExamVeda
Login
Home
Constructors and Methods
?

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

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.
Examveda
Question posted by Examveda
Community

Join the Discussion

3 Comments
Chetan Dandekar
Chetan Dandekar 2 years ago
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.
Pavan Kumar
Pavan Kumar 6 years ago
Pls explain this program
Khushboo Pandya
Khushboo Pandya 10 years ago
how