본문 바로가기
문제 풀이/Java

[Java] 인터페이스를 이용하여 원과 사각형의 면적을 구해보자

by 찐코딩 2021. 9. 2.

여기서 나는 좀 더 응용해서

1과 2를 입력받는게 아니면 다시 입력받을 수 있도록 코드를 짜봤다.

 

package Exam2;

import java.util.Scanner;

// 인터페이스
interface Shape {
	// 추상메소드 선언
	double findArea();
}


// 원형 클래스
class Circle implements Shape {
	
	// 반지름 변수 선언
	int radius; 				
	
	// 기본 생성자
	public Circle() {	}		
	
	// 인자 생성자
	public Circle(int radius) {
		this.radius = radius;
	}							
	
	// 프로토타입 메서드 구현
	@Override
	public double findArea() {
		return 3.14 * radius * radius;
	}
}


// 사각형 클래스
class Rectangle implements Shape {
	
	// 멤버변수 선언
	int height;						
	int width;					

	// 기본 생성자
	public Rectangle() {	}		
	
	// 인자 생성자
	public Rectangle(int heigth, int width) {
		this.height=heigth;
		this.width=width;
	}								

	// 프로토타입 메서드 구현
	@Override
	public double findArea() {
		return height * width;
	}

}



public class Exam_02 {

	public static void main(String[] args) {
	
		Scanner sc = new Scanner(System.in);
		System.out.println("도형을 선택하세요.(1. 원형, 2. 사각형)");
		System.out.print("도형 선택 >>> ");
		int choice=sc.nextInt();
		
		// choice는 1이나 2의 조건을 충족해야 하므로,
		if(choice!=1&&choice!=2) { 
			System.out.println("잘못된 번호를 입력하였습니다. \n1과 2 중 다시 선택하세요.");
			choice=sc.nextInt();
		}			
					
		if(choice==1) {
			System.out.println("원형 선택");
			System.out.print("반지름 입력 >>> ");
			Circle circle = new Circle(sc.nextInt());
			System.out.println("======================");
			System.out.printf("원의 면적 >>> %.1f\n", circle.findArea()); }
		
		else if(choice==2) {
			System.out.println("사각형 선택");
			System.out.print("가로 입력 >>> ");
			int height = sc.nextInt();
			System.out.print("세로 입력 >>> ");
			int width = sc.nextInt();
			Rectangle rectangle=new Rectangle(width, height);
			System.out.println("======================");
			System.out.printf("사각형의 면적 >>> %.1f\n", rectangle.findArea()); }
		
	}
}

결과

도형을 선택하세요.(1. 원형, 2. 사각형)
도형 선택 >>> 1
원형 선택
반지름 입력 >>> 20
======================
원의 면적 >>> 1256.0
도형을 선택하세요.(1. 원형, 2. 사각형)
도형 선택 >>> 3
잘못된 번호를 입력하였습니다. 
1과 2 중 다시 선택하세요.
2
사각형 선택
가로 입력 >>> 20
세로 입력 >>> 14
======================
사각형의 면적 >>> 280.0

 

댓글