자바

생산자, 오버로딩 활용하여 원기둥 부피 구하기 예제

chantleman 2024. 7. 15. 17:34
import java.util.Scanner;

public class HomeWork10 {
	
	Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		HomeWork10 obj = new HomeWork10();
		obj.process();
	}

	public void process() {
		System.out.print("반지름 입력: ");
		int r = sc.nextInt();
		System.out.println("높이 입력:");
		int h= sc.nextInt();		
		
		Circle c = new Circle(r);
		System.out.println(c);
		
		// 원기둥 부피 출력
		Cylinder cy = new Cylinder(r,h);
		System.out.println(cy);		
	}
}

class Circle{
	int r;
	double area;	
	
	//반지름을 입력할때 원의 넓이를 구하시오
	public Circle(int r) {
		//pi*r*r
		double pi = Math.PI;
		this.r=r;
		area = pi*r*r;		
	}
    
	@Override
	public String toString() {
		return String.format("원넓이: %d * %d= %.2f",r,r,area);
	}
}

class Cylinder{
	int h;
	Circle c;
	double volume;
	
	// 원, 높이를 입력받아 부피 구하기
	public Cylinder(Circle c, int h) {
		//부피 = 원넓이*높이
		this.c=c;
		this.h=h;
		volume=c.area*h;	
	}	
	
	//반지름, 높이를 입력받아 부피 구하기
	public Cylinder(int r, int h) {
		// 오버로딩 이용해서 해볼것
		this(new Circle(r),h);		
	}

	@Override
	public String toString() {
	    return String.format("원기둥 부피: %s * %d = %.2f", c.toString(), h, volume);
	}	
}

'자바' 카테고리의 다른 글

자바 로또 예제  (0) 2024.07.18
enum  (0) 2024.07.17
점3개로 삼각형 넓이 구하기 예제  (1) 2024.07.15
constructor, 생성자  (0) 2024.07.15
버블 소팅  (0) 2024.07.12