import java.util.*;
import java.lang.*;
import java.io.*;
// an interface
public double calculateArea();
}
//Rectangle class
// fields/variables
double length;
double width;
//constructor
public Rectangle(double length,
double width
) {
setLength(length);
setWidth(width);
}
//getters and setters
public double getLength()
{
return length;
}
public void setLength(double length)
{
if(length > 0)
this.length = length;
}
public double getWidth()
{
return width;
}
public void setWidth(double width)
{
if(width > 0)
this.width = width;
}
// returning the area of rectangle
public double calculateArea()
{
return length * width;
}
}// end of Rectangle class
//Circle class
class Circle
implements Shape
{
// fields/variables
double radius;
//constructor
public Circle(double radius)
{
setRadius(radius);
}
//getters and setters
public double getRadius()
{
return radius;
}
public void setRadius(double radius)
{
if(radius > 0)
this.radius = radius;
else
this.radius = 0.0;
}
// returning area of circle
public double calculateArea()
{
return Math.
PI * radius
* radius
; }
}
// to test the objects of Rectangle and Circle
class ShapeTest {
public static void main
(String [] args
) {
double r_area;
double c_area;
r_area=r.calculateArea();
c_area=c.calculateArea();
System.
out.
println("area of Rectangle is : "+r_area
); System.
out.
println("area of Circle is : "+c_area
); }
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgoKLy8gYW4gaW50ZXJmYWNlCmludGVyZmFjZSBTaGFwZSB7CiAgICBwdWJsaWMgZG91YmxlIGNhbGN1bGF0ZUFyZWEoKTsKfQoKLy9SZWN0YW5nbGUgY2xhc3MKCmNsYXNzIFJlY3RhbmdsZSBpbXBsZW1lbnRzIFNoYXBlIHsKCi8vIGZpZWxkcy92YXJpYWJsZXMKCmRvdWJsZSBsZW5ndGg7Cgpkb3VibGUgd2lkdGg7CgovL2NvbnN0cnVjdG9yCgpwdWJsaWMgUmVjdGFuZ2xlKGRvdWJsZSBsZW5ndGgsIGRvdWJsZSB3aWR0aCkKewogICAgc2V0TGVuZ3RoKGxlbmd0aCk7CiAgICBzZXRXaWR0aCh3aWR0aCk7Cn0KCi8vZ2V0dGVycyBhbmQgc2V0dGVycwoKcHVibGljIGRvdWJsZSBnZXRMZW5ndGgoKQp7CiAgICByZXR1cm4gbGVuZ3RoOwp9CgpwdWJsaWMgdm9pZCBzZXRMZW5ndGgoZG91YmxlIGxlbmd0aCkKewogICAgaWYobGVuZ3RoID4gMCkKICAgICAgICB0aGlzLmxlbmd0aCA9IGxlbmd0aDsKfQoKcHVibGljIGRvdWJsZSBnZXRXaWR0aCgpCnsKICAgIHJldHVybiB3aWR0aDsKfQoKcHVibGljIHZvaWQgc2V0V2lkdGgoZG91YmxlIHdpZHRoKQp7CiAgICBpZih3aWR0aCA+IDApCiAgICAgICAgdGhpcy53aWR0aCA9IHdpZHRoOwp9CgovLyByZXR1cm5pbmcgdGhlIGFyZWEgb2YgcmVjdGFuZ2xlCgpwdWJsaWMgZG91YmxlIGNhbGN1bGF0ZUFyZWEoKQp7CiAgICByZXR1cm4gbGVuZ3RoICogd2lkdGg7Cn0KCn0vLyBlbmQgb2YgUmVjdGFuZ2xlIGNsYXNzCgovL0NpcmNsZSBjbGFzcwoKY2xhc3MgQ2lyY2xlIGltcGxlbWVudHMgU2hhcGUKCnsKICAgIC8vIGZpZWxkcy92YXJpYWJsZXMKICAgICAgICBkb3VibGUgcmFkaXVzOwoKLy9jb25zdHJ1Y3RvcgoKcHVibGljIENpcmNsZShkb3VibGUgcmFkaXVzKQp7CiAgICBzZXRSYWRpdXMocmFkaXVzKTsKfQoKLy9nZXR0ZXJzIGFuZCBzZXR0ZXJzCgpwdWJsaWMgZG91YmxlIGdldFJhZGl1cygpCnsKICAgIHJldHVybiByYWRpdXM7Cn0KCnB1YmxpYyB2b2lkIHNldFJhZGl1cyhkb3VibGUgcmFkaXVzKQp7CiAgICBpZihyYWRpdXMgPiAwKQogICAgICAgIHRoaXMucmFkaXVzID0gcmFkaXVzOwogICAgZWxzZQogICAgICAgIHRoaXMucmFkaXVzID0gMC4wOwp9CgovLyByZXR1cm5pbmcgYXJlYSBvZiBjaXJjbGUKCnB1YmxpYyBkb3VibGUgY2FsY3VsYXRlQXJlYSgpCnsKICAgIHJldHVybiBNYXRoLlBJICogcmFkaXVzICogcmFkaXVzOwp9CgogIAp9CgovLyB0byB0ZXN0IHRoZSBvYmplY3RzIG9mIFJlY3RhbmdsZSBhbmQgQ2lyY2xlCgpjbGFzcyBTaGFwZVRlc3QgewogIApwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgW10gYXJncykKewogICAgU2hhcGUgWyBdIGRpYWdyYW1zID0gbmV3IFNoYXBlIFszXTsKICAgIFNoYXBlIHI9bmV3IFJlY3RhbmdsZSg1LDQpOwogICAgU2hhcGUgYz1uZXcgQ2lyY2xlKDUpOwogICAgZG91YmxlIHJfYXJlYTsKICAgIGRvdWJsZSBjX2FyZWE7CiAgICByX2FyZWE9ci5jYWxjdWxhdGVBcmVhKCk7CiAgICBjX2FyZWE9Yy5jYWxjdWxhdGVBcmVhKCk7CiAgCiAgICBTeXN0ZW0ub3V0LnByaW50bG4oImFyZWEgb2YgUmVjdGFuZ2xlIGlzIDogIityX2FyZWEpOwogICAgU3lzdGVtLm91dC5wcmludGxuKCJhcmVhIG9mIENpcmNsZSBpcyA6ICIrY19hcmVhKTsKfQp9