~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()); } }