본문 바로가기

수업 복습하기/Java Quiz

Quiz 28 - Overriding + Overload

728x90
728x90

= Overriding + Overload

 

<문제 > (난이도  ) (마지막 부분 다시 풀어보기)

/* 요구사항
 * Calculator를 부모클래스로 선언하세요.
 * Calculator를 상속받는 Computer클래스 생성 합니다.
 * 
 * Calculator의 멤버변수 result, pi를 선언하세요
 * Calculator의 메서드
 * add(int) - result에 값을 누적시키는 기능
 * sub(int) - result에 값을 차감시키는 기능
 * circle(int) - pi를 이용해서 원의 넓이를 구하는 기능
 * 
 * Computer클래스의 메서드
 * Math.PI를 사용해서 원의넓이를 구하도록 circle 메서드를 오버라이딩하세요
 * 
 * 메인클래스에서 Calculator, Computer를 생성하고 메서드를 확인하세요.
 *------------------------------------------------------------
 *Computer클래스에 rect메서드를 오버로딩
 *rect메서드는 빗변을 받아서, 정사각형의 넓이, 직사각형의 넓이, 직육면체의 넓이를 반환하도록 오버로딩
 */

 

<정답>

누적된 값:6
차감된 값:3
계산기로 계산한 원의 넓이 :50.24
컴퓨터로 계산한 원의 넓이:50.26548245743669
16.0
20.0
120.0

 

<해설>

< Calculator>
package quiz05;

public class Calculator {

	 int result;
	 double pi=3.14; //변하지 않는 수이기 떄문에.
	 
	 Calculator(){
		 result=1;
	 }
     
	 int add(int a){
		 result+=a;
		 return result;
		 }
         
	 int sub(int b) {
		 result-=b;
		 return result;
	 	}
        
	 double circle(int r) {
		 return pi*(r*r);
	 }
}
package quiz05;

public class Computer extends Calculator{
	//오버라이딩
	double circle(int r) {
		return r*r*Math.PI;
	}
	//오버로딩
	double rect(double a) {
		return a*a;
	}
	double rect(double a, double b) {
		 return a*b;
	 }
	double rect(double a,double b,double c) {
		return a*b*c;
	 }
}
< MainClass >
package quiz05;

public class MainClass {
public static void main(String[] args) {

	Calculator cal = new Calculator();
	System.out.println("누적된 값:"+cal.add(5));
	System.out.println("차감된 값:"+cal.sub(3));
	System.out.println("계산기로 계산한 원의 넓이 :"+cal.circle(4));
	
	//여기서부터 모름
	Computer com=new Computer();
	System.out.println("컴퓨터로 계산한 원의 넓이:"+com.circle(4));
	
	System.out.println(com.rect(4));
	System.out.println(com.rect(4,5));
	System.out.println(com.rect(4,5,6));
	}
}

모른다고 적었던 부분부터 다시 공부하기~ 오버로딩 관련되어서도 있는데, 관련 이론 정리할것.

728x90

'수업 복습하기 > Java Quiz' 카테고리의 다른 글

Quiz 29 - 오버로딩 + 배열  (0) 2021.08.30
Quiz 27 - 상속 + Method  (0) 2021.08.30
Quiz 26 - 생성자 + Method (2)  (0) 2021.08.29
Quiz 25 - 생성자 + Method  (0) 2021.08.29
Quiz 24 - Method 연습  (0) 2021.08.29