If the instructions z.set2(5); and y.set1(10); are performed, which of the following is true?

If the instructions z.set2(5); and y.set1(10); are performed, which of the following is true?

a)       (y = = z) is still true
b)       (y.get1( ) = = z.get1( )) but (y.get2( ) != z.get2( ))
c)       (y.get1( ) = = z.get1( )) and (y.get2( ) = = z.get2( )) but (y != z)
d)       (y.get1( ) = = z.get2( )) and (y.get2( ) = = z.get1( )) but (y != z)
e)       this statement causes a run-time error

Consider a class that stores 2 int values.  These values can be assigned int values with the messages set1(x) and set2(x) where x is an int, and these values can be accessed through get1( ) and get2( ).  Assume that y and z are two objects of this class.  The following instructions are executed:
y.set1(5);
y.set2(6);
z.set1(3);
z.set2(y.get1( ));
y = z;

Answer:  a.

Explanation:  Since y=z; was peformed previously, y and z are aliases meaning that they refer to the same object.  The statement z.set2(5); causes a change to the object's second value while y.set1(10); causes a change to the object's first value but neither change the fact that y and z are aliases.


Enhancing Classes

Learn More Multiple Choice Question :