Static variables and methods

public class SomeObject {
    // A static variable:
    private static int sharedData = 1;
    // An instance variable
    private int individualData;

    public SomeObject(int data) {
	individualData = data;
    }

    public void print() {
	System.out.println("Individual data = " + individualData + 
			   " Shared data " + sharedData);
    }

    public void changeIndividual(int d) {
	individualData += d;
    }

    // This is a static method
    public static void changeShared(int d) {
	sharedData += d;
    }
}


public class TestStatic {
    public static void main(String [] args) {
	SomeObject obj1 = new SomeObject(2);
	SomeObject obj2 = new SomeObject(4);
	SomeObject obj3 = new SomeObject(6);

	// changing instance variables:
	obj1.changeIndividual(3);
	obj2.changeIndividual(7);

	// changing static variables:
	obj1.changeShared(1);
	obj3.changeShared(2);
	
	obj1.print();
	obj2.print();
	obj3.print();	

	// Calling a static method on a class itself
	SomeObject.changeShared(-10);
	
	obj1.print();
	obj2.print();
	obj3.print();	
    }
}

This is an example from CSci 2101 course.