// Fig. 5.12: PassArray.java // Passing arrays and individual array elements to methods import java.awt.Graphics; import java.applet.Applet; public class PassArray extends Applet { int a[] = {0, 1, 2, 3, 4}; public void paint( Graphics g ) { int xPosition = 25, yPosition = 25; g.drawString( "Effects of passing entire array call-by-reference:", xPosition, yPosition ); yPosition += 15; g.drawString( "The values of the original array are:", xPosition, yPosition ); xPosition += 15; yPosition += 15; for ( int i = 0; i < a.length; i++ ) { g.drawString( String.valueOf( a[ i ] ), xPosition, yPosition ); xPosition += 15; } xPosition = 25; yPosition += 30; modifyArray( a ); // array a passed call-by-reference g.drawString( "The values of the modified array are:", xPosition, yPosition ); xPosition += 15; yPosition += 15; for ( int i = 0; i < a.length; i++ ) { g.drawString( String.valueOf( a[ i ] ), xPosition, yPosition ); xPosition += 15; } xPosition = 25; yPosition += 30; g.drawString( "Effects of passing array element call-by-value:", xPosition, yPosition ); yPosition += 15; g.drawString( "a[3] before modifyElement: " + a[ 3 ], xPosition, yPosition ); yPosition += 15; modifyElement( a[ 3 ] ); g.drawString( "a[3] after modifyElement: " + a[ 3 ], xPosition, yPosition ); } public void modifyArray( int b[] ) { for ( int j = 0; j < b.length; j++ ) b[ j ] *= 2; } public void modifyElement( int e ) { e *= 2; } }