class BankAccount { int ID; double balance; }; public class struct_copy { public static BankAccount a; public static void main(String[] argv) { BankAccount b; a = new BankAccount( ); // Create the objects b = new BankAccount( ); a.ID = 123; a.balance = 1000.0; b.ID = 444; b.balance = 3000.0; System.out.printf("a = (%d, %f)\n", a.ID, a.balance); System.out.printf("b = (%d, %f)\n\n", b.ID, b.balance); /* ======================== Copy reference ! ======================== */ b = a; System.out.printf("a = (%d, %f)\n", a.ID, a.balance); System.out.printf("b = (%d, %f)\n\n", b.ID, b.balance); /* ============================================ Proof that a and b are the SAME object ============================================ */ a.balance = 999999.0; System.out.printf("a = (%d, %f)\n", a.ID, a.balance); System.out.printf("b = (%d, %f)\n\n", b.ID, b.balance); } }