The Java Program: PassByWrapper.java

  1 // PassByWrapper.java:  Java uses call by value; wrapper class does not help
  2 
  3 public class PassByWrapper {
  4 
  5    public static void main (String[] args) {
  6       Double one = new Double (1.0);
  7       System.out.println ("before: one = " + one);
  8       halveIt (one);
  9       System.out.println ("after:  one = " + one);
 10       printHalf (one);
 11    }
 12 
 13    public static void halveIt (Double arg) {
 14       // "arg" used as a temporary local variable
 15       arg = new Double (arg.doubleValue()/2.0);
 16       System.out.println ("halved: arg = " + arg);
 17    }
 18 
 19    public static void printHalf (final Double arg) {
 20       System.out.println ("printHalf: arg = " + new Double (arg.doubleValue()/2.0));
 21    }
 22       
 23 }