The `new` expression creates a Player. An assignment between two Player variables copies a reference to an existing Player.
Player original = new Player();
Player teammate = original;There is one Player object. Both variables lead to it.
If `teammate.Name` becomes Casey, `original.Name` is Casey as well. The object has one Name field, and both references can reach it.
A second `new Player()` creates a second object:
Player separate = new Player();
separate.Name = original.Name;The second line copies a field value into `separate`. The two Player objects remain distinct.
If `separate.Name` later changes to Morgan, `original.Name` stays Casey. Sharing a name value does not make the objects share identity.