Discussion :: Operators and Assignments
-
What will be the output of the program?
class Two { byte x; } class PassO { public static void main(String [] args) { PassO p = new PassO(); p.start(); } void start() { Two t = new Two(); System.out.print(t.x + " "); Two t2 = fix(t); System.out.println(t.x + " " t2.x); } Two fix(Two tt) { tt.x = 42; return tt; } }
Answer : Option C
Explanation :
In the fix() method, the reference variable tt refers to the same object (class Two) as the t reference variable. Updating tt.x in the fix() method updates t.x (they are one in the same object). Remember also that the instance variable x in the Two class is initialized to 0.
Be The First To Comment