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.
Join The Discussion
Comments (3)
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
In Java, which method is automatically called when an object is created?
A. start()
B. main()
C. init()
D. constructor()
What is method overloading in Java?
A. Defining multiple methods with the same name in the same class
B. Calling methods from another class
C. Using methods to load data from a file
D. Running methods in parallel threads

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