Examveda

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

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.

This Question Belongs to Java Program >> Constructors And Methods

Join The Discussion

Comments (3)

  1. 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.

  2. Pavan Kumar
    Pavan Kumar:
    5 years ago

    Pls explain this program

  3. Khushboo Pandya
    Khushboo Pandya:
    9 years ago

    how

Related Questions on Constructors and Methods

What is a constructor in Java?

A. A special method to create instances of classes

B. A method used for mathematical calculations

C. A method to perform string manipulations

D. An exception handling mechanism