import java.util.Arrays;

public class Experiment2
{

    /**
     * A few methods for exploring automatic boxing and unboxing in Java
     * Methods and examples based on a lab on boxing/unboxing by Samuel Rebelsky
     */

    /**
     * Add brackets around a string.
     */
    public static String bracket(String str)
    {
        return "[" + str + "]";
    } // bracket
    /**
     * Add parentheses around a stringified object.
     */
    public static String parenthesize(Object o)
    {
        return "(" + o.toString() + ")";
    } // parenthesize(Object)
    /**
     * Square an Integer.
     */
    public static Integer square(Integer x)
    {
        int val = x.intValue();
        return new Integer(val * val);
    } // square(Integer)
    /**
     * Square an int.
     */
    public static int sqr(int x)
    {
        return x * x;
    } // sqr

    /**
     * Sum an array of ints.
     */
    public static int littleSum(int[] values)
    {
        int sum = 0;
        for (int i = 0; i < values.length; i++)
            {
                sum += values[i];
            } // for
        return sum;
    } // littleSum(int[])
    /**
     * Sum an array of Integers.
     */
    public static Integer bigSum(Integer[] values)
    {
        int sum = 0;
        for (int i = 0; i < values.length; i++)
            {
                sum += values[i].intValue();
            } // for
        return new Integer(sum);
    } // bigSum(Integer[])

  public static void main(String[] args)
    throws Exception
  {
     Integer bigi = new Integer(5);
     int littlei = 3;
     String str = "Hello";
     int[] littlevals = new int[] { 1, 2, 3 };
     Integer[] bigvals =
         new Integer[] { new Integer(4), new Integer(5), new Integer(6) };
 
    // Print out our original values.
     System.out.println("bigi: " + bigi);
     System.out.println("littlei: " + littlei);
     System.out.println("str: " + str);
     System.out.println("bigvals: " + bigvals + " or " + Arrays.toString(bigvals));
     System.out.println("littlevals: " + littlevals + " or "
                 + Arrays.toString(littlevals));
     System.out.println();



     /* Step 2 */
     System.out.println("square(bigi): " + square(bigi));
     System.out.println("sqr(littlei): " + sqr(littlei));
     System.out.println("bracket(str): " + bracket(str));
     // System.out.println("bracket(str): " + bracket(bigi));
     //System.out.println("bracket(str): " + bracket(littlei));
     System.out.println("bigSum(bigvals): " + bigSum(bigvals));
     System.out.println("littleSum(littlevals): " + littleSum(littlevals));
     System.out.println();

     /* Step 3 */
     System.out.println("bigi: " + bigi);
     System.out.println("littlei: " + littlei);
     System.out.println();

     /* step 4 */
     System.out.println("parenthesize(str): " + parenthesize(str));
     System.out.println("parenthesize(bigi): " + parenthesize(bigi));
     System.out.println("parenthesize(littlei): " + parenthesize(littlei));
     System.out.println();

     /* step 7 */
     //System.out.println("littleSum(bigvals): " + littleSum(bigvals));
     //System.out.println("bigSum(littlevals): " + bigSum(littlevals));
     System.out.println();

     /* step 8 */
     Integer ex8 = null;
     //System.out.println("square(ex8): " + square(ex8));
     System.out.println();

     /* step 9 */
     String ex9 = null;
     System.out.println("bracket(ex9): " + bracket(ex9));
     System.out.println();

     /* step 10 */
     String ex10 = null;
     System.out.println("parenthesize(ex10): " + parenthesize(ex10));
     System.out.println();

  } // main
} // class Experiments2
