// Fig. 4.10: Scoping.java
// A scoping example
import java.awt.Graphics;
import java.applet.Applet;

public class Scoping extends Applet {
   int x = 1;      // instance variable

   public void paint( Graphics g )
   {
      g.drawString( "See command line for output", 25, 25 );

      int x = 5;   // local variable to paint

      System.out.println( "local x in paint is " + x );

      a();         // a has automatic local x
      b();         // b uses instance variable x
      a();         // a reinitializes automatic local x
      b();         // instance variable x retains its value

      System.out.println( "\nlocal x in paint is " + x );
   }

   void a()
   {
      int x = 25;  // initialized each time a is called

      System.out.println( "\nlocal x in a is " + x +
                          " after entering a" );
      ++x;
      System.out.println( "local x in a is " + x +
                          " before exiting a" );
   }

   void b()
   {
      System.out.println( "\ninstance variable x is " + x +
                          " on entering b" );
      x *= 10;
      System.out.println( "instance variable x is " + x +
                          " on exiting b" );
   }
}   
