//Scoping.java
// A scoping example
import java.awt.Container;
import javax.swing.*;
public class Scoping extends JApplet {
JTextArea outputArea;
int x = 1; // instance variable
public void init()
{
outputArea = new JTextArea();
Container c = getContentPane();
c.add( outputArea );
}
public void start()
{
int x = 5; // variable local to method start
outputArea.append( "local x in start is " + x );
methodA(); // methodA declares x and hence it is local to methodA
methodB(); // methodB doesn't declare x so methodB changes the value of instance variable x
methodA(); // methodA declares x and hence it is local to methodA
methodB(); // methodB uses the changed value of the instance variable and changes it again
outputArea.append( "\n\nlocal x in start is " + x );
}
public void methodA()
{
int x = 25; // initialized each time a is called
outputArea.append( "\n\nlocal x in methodA is " + x +
" after entering methodA" );
++x;
outputArea.append( "\nlocal x in methodA is " + x +
" before exiting methodA" );
}
public void methodB()
{
outputArea.append( "\n\ninstance variable x is " + x +
" on entering methodB" );
x *= 10;
outputArea.append( "\ninstance variable x is " + x +
" on exiting methodB" );
}
}