The Java Program: Wrapper.java

  1 class Wrapper {
  2 
  3    private final int r,g,b;
  4 
  5    Wrapper (final int red, final int green, final int blue) {
  6       r = red; g = green; b = blue;
  7    }
  8 
  9    // This method is also completely useless
 10    public void getRGBColor (Integer red, Integer green, Integer blue) {
 11       red = new Integer(r); green = new Integer(g); blue = new Integer(b);
 12       // Changes to local variables are lost when method returns.
 13    }
 14 
 15    public static void main (String[] args) {
 16       final Wrapper p = new Wrapper (200,225,250);
 17       Integer red, green, blue;
 18       /*
 19         The following are not legal as the variables red, green, and blue
 20         have not been initialized!
 21 
 22       p.getRGBColor (red,green,blue);
 23       System.out.println ("red="+red+", green="+green+", blue="+blue);
 24 
 25         Initizalizing them does not solve the underlying problem that
 26         "getRGBColor" cannot assign to the variables.
 27 
 28       */
 29       red=green=blue=null;
 30       p.getRGBColor (red,green,blue);
 31       // All are still null!
 32       System.out.println ("red="+red+", green="+green+", blue="+blue);
 33 
 34       red=green=blue=new Integer(0);
 35       p.getRGBColor (red,green,blue);
 36       // All are still (the same shared) 0!
 37       System.out.println ("red="+red+", green="+green+", blue="+blue);
 38    }
 39 
 40 
 41 }