package references;

public class Experiments1
{
  public static void main(String[] args)
    throws Exception
  {
    // First example: int values.

    int int1 = 2;
    int int2 = int1;

    System.out.println ("Experiments with primitive int type");
    System.out.println("Initial values for int1, int2");
    System.out.println("int1 = " + int1);
    System.out.println("int2 = " + int2);

    int1 += 5;

    System.out.println("After incrementing int1 by 5");
    System.out.println("int1 = " + int1);
    System.out.println("int2 = " + int2);

    // Second example: Tally objects.

    System.out.println ("Experiments with object Tally");
    Tally tally1 = new Tally (2);
    Tally tally2 = tally1;

    System.out.println("Initial values for tally1, tally2");
    System.out.println("tally1 = " + tally1);
    System.out.println("tally2 = " + tally2);

    tally1.tally ();
    tally1.tally ();
    tally1.tally ();
    tally1.tally ();
    tally1.tally ();

    System.out.println("After incrementing tally1 by 5");
    System.out.println("tally1 = " + tally1);
    System.out.println("tally2 = " + tally2);


    // Third example: Integer values.
    //                illustrating autounboxing and autoboxing

    System.out.println ("Experiments with Integer object, autounboxing, and autoboxing");
    Integer integer1 = new Integer (2);
    Integer integer2 = integer1;

    System.out.println("Initial values for integer1, integer2");
    System.out.println("integer1 = " + integer1);
    System.out.println("integer2 = " + integer2);

    integer1 += 5;

    System.out.println("After incrementing integer1 by 5");
    System.out.println("integer1 = " + integer1);
    System.out.println("integer2 = " + integer2);


  } // main
} // class Experiments1
