Language/java

[Java] 도형 "그리다" 출력, 면적구하기 - 상속 연습

송 이 2024. 3. 5. 14:48
package day08;

public class ShapeTest {

	public static void main(String[] args) {
		
		
		Shape[] arr = new Shape[3];
		arr[0] = new Circle(3);
		arr[1] = new Triangle(2,5);
		arr[2] = new Square(10,20);
		
		
		
		//그리다 메서드 출력
		for(int i =0; i<arr.length; i++) {
			if(arr[i] instanceof Circle) {
				((Circle)arr[i]).draw("원");
			}else if(arr[i] instanceof Triangle){
				((Triangle)arr[i]).draw("삼각형");
			}else {
				((Square)arr[i]).draw("사각형");
			}
		}

		
		//면적구하기 메서드 출력
		
		for(int i =0; i<arr.length; i++) {
			System.out.println("면적은 : "+arr[i].Area() + "입니다.");
		}
		
		
	}

}
package day08;

public class Shape {


	public void draw(String shape) {
		System.out.println(shape +"을 그립니다.");
	}
	
	public double Area() {
		return 0;
	}
}​
package day08;

public class Square extends Shape{
	int width;
	int height;
	
	Square(int width, int height){
		this.width = width;
		this.height = height;
	}
	
	@Override
	public double Area() {
		double area;
		area = width * height;
		return area;
	}
}​
package day08;

public class Triangle extends Shape{
	int base;
	int height;
	
	Triangle(int base, int height){
		this.base = base;
		this.height = height;
	}
	
	@Override
	public double Area() {
		double area;
		area = base * height /2;
		return area;
	}
}
package day08;

public class Circle extends Shape{
	int radius;
	
	Circle(int radius){
		this.radius = radius;
	}
	
	@Override
	public double Area() {
		double area;
		area = (double) (radius * radius * 3.14);
		return area;
	}
}