package oopintro;

public class Thing {

    // this is an instance variable
    public int thingID;

    // this is a class variable;
    public static int numberOfThings;

    public void instanceMethod() {
        System.out.println("Instance Methods");
        System.out.println("Thing ID Number: " + thingID);

        // you ARE allowed to access a class member inside an instance method:
        System.out.println("Instance Method #Things: " + numberOfThings);
        System.out.println("-- Calling classMethod() from inside instanceMethod() --");
        classMethod(); 
        System.out.println("-- finished classMethod() from instanceMethod() --");
    }

    public static void classMethod() {
        System.out.println("Class Method");
        // you can't refer to an instance member inside a class
        // method because the class method is NOT invoked on an 
        // instance, so therefore no instance exists:
        //  System.out.println("Thing ID Number: " + thingID);
        //  instanceMethod();  
        System.out.println("Class Method #Things: " + numberOfThings);

    }
}
