// ArrayParameterPassing1.java
// Demos difference between parameter passing by-value vs. by reference
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ArrayParameterPassing1 extends JApplet implements ActionListener {
// declare and initialize the hard-coded array
int a[ ] = { 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 };
// GUI Components
Container c;
JTextArea outputArea;
JButton b;
public void init( ) {
c = getContentPane( );
c.setLayout( new FlowLayout( ) );
outputArea = new JTextArea( 7, 40 );
c.add( outputArea );
b = new JButton( "Pass" );
b.addActionListener( this );
c.add( b );
}
public void actionPerformed( ActionEvent e ) {
outputArea.append( "Original array:\n" );
// print the array
for ( int i = 0; i < a.length; i++ )
outputArea.append( a[ i ] + " " );
// pass the array by-reference
modArray( a );
outputArea.append( "\nArray after passing by-reference:\n" );
// print the array
for ( int i = 0; i < a.length; i++ )
outputArea.append( a[ i ] + " " );
// pass some of the individual elements by-value
for ( int i = 0; i < a.length - 5; i++ )
a[ i ] = modElement( a[ i ] );
outputArea.append( "\nArray after passing some elements by-value:\n" );
// print the array
for ( int i = 0; i < a.length; i++ )
outputArea.append( a[ i ] + " " );
}
public void modArray( int b[ ] ) {
for ( int i = 0; i < b.length; i++ )
b[ i ] *= 3;
}
public int modElement( int x ) {
return x += 100;
}
}