/** * This code is from the book: * Winder, R and Roberts, G (1998) * Developing Java Software * John Wiley & Sons. * It is copyright (c) 1997 Russel Winder * and Graham Roberts. */ class l1ClStat3{//Constructor2 //The single private constructor prevents //any client of the class creating //instance objects directly using new. private l1ClStat3(String s){ name = s; } public String toString(){ return "l1ClStat3 object: " + name; } public static l1ClStat3 getInstance(){ if (next >= SIZE){ next = 0; } return objects[next++]; } private String name; private static final int SIZE = 10; private static int next = 0; // The next variable has an initializer block // This is not a method! private static l1ClStat3[] objects = new l1ClStat3[SIZE]; static{ for (int i = 0; i < SIZE; i++){ objects[i] = new l1ClStat3( new Integer(i).toString()); System.out.println("here"); } } } /******** sample compilation & run ******** # javac l1ClStat3.java # java l1ClStat3 here here here here here here here here here here In class l1ClStat3: void main(String argv[]) is not defined ******************************************/