class BankAccount
{
   int    accNum;
   double balance;
};

public class main
{
   public static BankAccount a;

   public static void main(String[] argv)
   {
      BankAccount b;

      a = new BankAccount( );  // Create the objects
      b = new BankAccount( );

      a.accNum  = 123;
      a.balance = 1000.0;

      b.accNum  = 444;
      b.balance = 3000.0;

      System.out.printf("a = (%d, %f)\n", a.accNum, a.balance);
      System.out.printf("b = (%d, %f)\n\n", b.accNum, b.balance);

      /* ========================
         Copy object reference
         ======================== */
      b = a;

      System.out.printf("a = (%d, %f)\n", a.accNum, a.balance);
      System.out.printf("b = (%d, %f)\n\n", b.accNum, b.balance);

      /* ============================================
         Proof that a and b are the SAME object
         ============================================ */
      a.balance = 999999.0;

      System.out.printf("a = (%d, %f)\n", a.accNum, a.balance);
      System.out.printf("b = (%d, %f)\n\n", b.accNum, b.balance);
   }
}