~cpp
import javax.swing.JOptionPane;
public class Point {
private int x;
private int y;
public Point() {
}
public Point(int aX, int aY) { //생성자 입니다.
this.x = aX;
y = aY;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public void setX(int Ax) {
x = Ax;
}
public void setY(int Ay) {
y = Ay;
}
public String getName() {
return "Point";
}
public void Say(String str) {
JOptionPane.showMessageDialog(null, str);
}
public void Say(int temp) {
String str = Integer.toString(temp);
JOptionPane.showMessageDialog(null, str);
}
public static void main(String[] args) {
Point P1 = new Point(20,20);
Point P2 = new Point(10,10);
//RECTANGLE
Rectangle p = new Rectangle(P1,P2);
// System.out.println(p.getArea());
//circle
Circle c = new Circle(P1,P2);
System.out.println(c.getArea());
}
}
~cpp
public class Shape {
protected Point left_top;
protected Point right_bottom;
public String name;
public Shape()
{
}
public Shape ( Point p1 , Point p2)
{
left_top = p1;
right_bottom = p2;
name = "Shape";
}
public Shape ( int x1, int y1, int x2, int y2)
{
this.left_top = new Point(x1,y1);
this.right_bottom = new Point( x2,y2 );
name = "Shape";
}
public double getArea()
{
return 0;
}
public String getName()
{
return name;
}
}
~cpp public class Circle extends Shape {
private double radius;
public Circle() {
}
public Circle(Point p1, Point p2) {
super(p1, p2);
name = "Circle";
}
public Circle(int x1, int y1, int x2, int y2) {
super(x1, y1, x2, y2);
name = "Circle";
}
public double getArea() {
if(Math.abs(left_top.getX()-right_bottom.getX()) >= Math.abs(left_top.getY()-right_bottom.getY()))
radius = Math.abs(left_top.getY()-right_bottom.getY());
else
radius = Math.abs(left_top.getX()-right_bottom.getX());
return Math.PI * radius * radius;
}
public String getName() {
return super.getName();
}
}
~cpp public class Rectangle extends Shape {
//right_bottom
//Point left_top
public Rectangle() {
}
public Rectangle(Point P1, Point P2) {
super(P1, P2);
name = "Rectangle";
}
public Rectangle(int x1, int y1, int x2, int y2) {
super(x1, y1, x2, y2);
name = "Rectangle";
}
public double getArea() {
return Math.abs(right_bottom.getX()-left_top.getX()) * Math.abs(left_top.getY()-right_bottom.getY());
}
}