Things I would like to be able to do: 

  1. Model Circles. 

  2. Model Rectangles. 

  3. Create some Circle and Rectangle objects. 
     Place them in an array of some sort. 

  4. Go through the array and ask the objects to report their areas.

  5. Sort the objects descending order by area. 

Also, apparently unrelated: 

  6. I want to report the mouse position on the screen. 

Here's how I started:

import java.util.*; 

class Circle {
  int r; 
  Circle(int r) { this.r = r; }
  public String toString() { return "Circle(" + this.r + ")"; }
  public double area() { 
    return this.r * this.r * Math.PI; 
  }
}

class Rectangle {
  int w, h; 
  Rectangle(int w, int h) { this.w = w; this.h = h; } 
  public String toString() {
    return "Rectangle(" + this.w + ", " + this.h + ")"; 
  }
  public double area() {
    return this.w * this.h; 
  }
}

class Example {
  public static void main(String[] args) {
    Object[] a = new Object[2];
    a[0] = new Circle(3); 
    a[1] = new Rectangle(3, 2); 
    System.out.println( a ); 
    ArrayList<Object> b = new ArrayList<Object>(); 
    b.add(new Circle(5)); 
    b.add(new Rectangle(8, 10)); 
    System.out.println( b ); 
    for (Object c : b )
      if (c instanceof Circle) 
        System.out.println( (Circle) c + " with area " + ((Circle)c).area() );
      else 
        System.out.println("I don't do rectangles at the moment..."); 
  } 
}

So as Nathan said we'd need to approach this differently. 

That's going to be our target for Wednesday.