
/*
   ClassVariables.java
   Burton Rosenberg
   Wed Mar  4 12:46:29 EST 1998
   revised Thu Mar 19 12:59:15 EST 1998

   SAMPLE OUTPUT:
 
    appomattox> javac ClassVariables.java
    appomattox> java ClassVariables
    A
      Class: 0
    a1
      Class: 2
      Insta: 1
    a2
      Class: 2
      Insta: 2
    a1
      Class: 3
      Insta: 3
    a2
      Class: 3
      Insta: 2
    A
      Class: 3
    appomattox> 
*/


class A {
    static int cv ;   // a class variable, only one 
                      // for the entire class.
    int iv ;          // an instance variable,
                      // for for each instance.

    void setVariable(int i) {
       cv = i ;
       iv = cv ;
    }

    int getClassVariable() {
       return cv ;
    }
 
    int getInstanceVariable() {
       return iv ;
    }

}

class ClassVariables {

    public static void main(String [] argv) {

       A a1, a2 ;
 
       System.out.println("A") ;
       System.out.println("  Class: " + A.cv ) ;

       a1 = new A() ;
       a2 = new A() ;

       a1.setVariable(1) ;
       a2.setVariable(2) ;

       System.out.println("a1") ;
       System.out.println("  Class: " + a1.getClassVariable()) ;
       System.out.println("  Insta: " + a1.getInstanceVariable()) ;
       System.out.println("a2") ;
       System.out.println("  Class: " + a2.getClassVariable()) ;
       System.out.println("  Insta: " + a2.getInstanceVariable()) ;

       a1.setVariable(3) ;

       System.out.println("a1") ;
       System.out.println("  Class: " + a1.getClassVariable()) ;
       System.out.println("  Insta: " + a1.getInstanceVariable()) ;
       System.out.println("a2") ;
       System.out.println("  Class: " + a2.getClassVariable()) ;
       System.out.println("  Insta: " + a2.getInstanceVariable()) ;

       System.out.println("A") ;
       System.out.println("  Class: " + A.cv ) ;

      }

}

