import java.awt.Rectangle; /** This example demonstrates the difference between copying numbers and object references. */ public class CopyDemo { public static void main(String[] args) { // Declare two object variables and copy the first into the second Rectangle box = new Rectangle(5, 10, 20, 30); Rectangle box2 = box; // Both variables refer to the same object System.out.print("box: "); System.out.println(box); System.out.print("box2: "); System.out.println(box2); System.out.println("Mutating box2"); box2.translate(15, 25); // Both variables refer to the mutated object System.out.print("box: "); System.out.println(box); System.out.print("box2: "); System.out.println(box2); // Declare two number variables and copy the first into the second int luckyNumber = 13; int luckyNumber2 = luckyNumber; System.out.print("luckyNumber: "); System.out.println(luckyNumber); System.out.print("luckyNumber2: "); System.out.println(luckyNumber2); System.out.println("Changing luckyNumber2"); luckyNumber2 = 12; // Only the second number changes. System.out.print("luckyNumber: "); System.out.println(luckyNumber); System.out.print("luckyNumber2: "); System.out.println(luckyNumber2); } }