Exercise 2-1. Write a `Circle` class that is similar to the
`Rect` class. Define a `move( )`
method and an `isInside( )` method. (Recall that a
circle is defined as all points within a given radius from the
center. Test for insideness by using the Pythagorean theorem to
compute the distance between a point and the center of the circle.)
Also, define a `boundingBox( )` method that returns
the smallest `Rect` that encloses the complete
`Circle`. Write a simple program to test the methods
you've implemented.

Exercise 2-2. Write a class that represents a person's mailing
address. It should have separate fields for the name, street address,
city, state, and ZIP code. Define a `toString( )`
method that produces nicely formatted output.

Exercise 2-3. Modify the `ComplexNumber` class of Example 2-5 to override the `equals( )`
and `hashCode( )` methods inherited from
`Object`. Use the `IntList` class
of Example 2-7 as a model.

Exercise 2-4. Modify Example 2-5 again to implement
`Comparable` as Example 2-7 does.
Note that this is not as straightforward as its seems, since there is
not an unambiguous ordering for complex numbers. One possible way to
order complex numbers is by their magnitude. Although this ordering
is suitable for some applications, note that it is not compatible
with the `equals( )` method. That is, a
`compareTo( )` method based on magnitude will return
(equality) for numbers that are nonequal according to the
`equals( )` method.

Exercise 2-5 . Modify the `IntList` class of Example 2-7 to create a `sort( )` method
that rearranges the list elements into sorted order. You can use the
sorting algorithm from the `SortNumbers` class of
Example 1-14, or you may prefer to research and
implement a more advanced sorting algorithm, such as quicksort or
mergesort.

Exercise 2-6. The `IntList` class implements the
`Comparable` interface, which means that
`IntList` objects can be compared to each other.
Write a program that initializes an array of
`IntList` objects, sorts those objects, and then
prints the lists in their new order (`IntList`
overrides `toString( )`, so printing the lists is
easy).