CircleWithFinalizer.java
Created with JBuilder
// Fig. 9.18: Circle.java
// Circle5 class declaration.

public class CircleWithFinalizer extends PointWithFinalizer {

  private double radius;  // Circle's radius

  // no-argument constructor
  public CircleWithFinalizer()
  {
    // implicit call to Point constructor occurs here
    System.out.println( "Circle no-argument constructor: " + this );
  }

  // constructor
  public CircleWithFinalizer( int xValue, int yValue, double radiusValue )
  {
    super( xValue, yValue );  // call Point constructor
    setRadius( radiusValue );

    System.out.println( "Circle constructor: " + this );
  }

  // finalizer
  protected void finalize()
  {
    System.out.println( "Circle finalizer: " + this );

    super.finalize();  // call superclass finalize method
  }

  // set radius
  public void setRadius( double radiusValue )
  {
    radius = ( radiusValue < 0.0 ? 0.0 : radiusValue );
  }

  // return radius
  public double getRadius()
  {
    return radius;
  }

  // calculate and return diameter
  public double getDiameter()
  {
    return 2 * getRadius();
  }

  // calculate and return circumference
  public double getCircumference()
  {
    return Math.PI * getDiameter();
  }

  // calculate and return area
  public double getArea()
  {
    return Math.PI * getRadius() * getRadius();
  }

  // return String representation of Circle5 object
  public String toString()
  {
    return "Center = " + super.toString() + "; Radius = " + getRadius();
  }

} // end class Circle





CircleWithFinalizer.java
Created with JBuilder