We use the static keyword when we want all the objects to share a single variable.

class jamesprogram {

	public static void main (String[] args){
		cat member1 = new cat("Emma", "Smith");
		cat member2 = new cat("Larry", "Oldman");
		cat member3 = new cat("Bob", "Timpy");
public class cat {
	private String first;
	private String last;
	// every object SHARES the same variable,
	// if you change a static variable, you change
	// it for ALL objects
	private static int members = 0;
	// constructor
	public cat (String fn, String ln){
		System.out.printf("Constructor for %s %s, members in the club: %d\n", first, last, members);

In this program we make 3 new objects that all share the static int variable members. Which counts upwards each time it is called. This outputs:

Constructor for Emma Smith, members in the club: 1
Constructor for Larry Oldman, members in the club: 2
Constructor for Bob Timpy, members in the club: 3

Leave a Reply