/***** * Arrays of objects - how things can go wrong. * As written, this program will crash. * ***/ class TestPointArray { private final static int NUMBER_OF_POINTS = 12; private static JimsPoint[] thePts; // That defined a place for "thePts", but doesn't put anything there. // So at this point, thePts==null. // thePts[3] would be an error at this point; it doesn't exist yet. public static void main(String[] args){ thePts = new JimsPoint[NUMBER_OF_POINTS]; // That created space for an array, but didn't put anything in it. // So at this point, thePts == { null, null, null, ... , null } // Now we can refer to thePts[3] without an error, but there // isn't an object there yet. thePts[0] = new JimsPoint(1.0,2.0); thePts[1] = new JimsPoint(10.0,20.0); thePts[2] = new JimsPoint(0.0,-10.0); thePts[3] = new JimsPoint(12.2, 1.2); thePts[4] = thePts[1]; thePts[5] = thePts[2]; System.out.println(" The number of points is " + JimsPoint.howMany()); // Now there's an object in the 0'th slot. // thePts == { (1.0,2.0), null, null, ..., null } // Try to print each point. for (int i=0; i