class Circle { public static final double PI = 3.14; public Circle( double rad, String col ) { if( rad < 0 ) { System.out.println( "Error constructing Circle" ); return; } radius = rad; color = col; } public Circle( String color ) { this( 0, color ); } public Circle( double rad ) { this( rad, "RED" ); } public Circle( ) { this( 0 ); } public double getArea( ) { return PI * radius * radius; } public double getPerimeter( ) { return 2 * PI * radius; } public double getRadius( ) { return radius; } public void setRadius( double newRadius ) { if( newRadius < 0 ) { System.out.println( "Error setting radius" ); return; } radius = newRadius; } public void expand( double factor ) { if( factor < 0 ) { System.out.println( "Error setting radius" ); return; } radius *= factor; } public boolean equals( Object other ) { // Is other a Circle? If NO ===> return false if( ( other instanceof Circle ) == false ) return false; // Compare radius fields Circle otherCircle = (Circle) other; if( radius == otherCircle.radius && color.equals( otherCircle.color ) ) return true; else return false; } public String getColor( ) { return color; } public String toString( ) { return "Circle with radius " + radius + " and color " + color; } // Data representation private double radius; private String color; } class Day02 { public static double getTotalArea( Circle [ ] arr ) { double sum = 0.0; for( Circle c : arr ) // Enhanced for loop sum += c.getArea( ); return sum; } public static void main( String [ ] args ) { Circle [ ] arr = { new Circle( ), new Circle( 2, "BLUE" ), new Circle( 4 ), new Circle( "GREEN") }; Circle c1 = new Circle( 2 ); for( Circle c : arr ) System.out.println( c ); System.out.println( "Total area is " + getTotalArea( arr ) ); if( c1.equals( arr[ 1 ] ) ) System.out.println( "Circles are equal" ); else System.out.println( "Circles are not equal" ); } }