[JAVA] 추상클래스 연습문제 feat. 계산기 프로그램

JoJo·2023년 7월 5일
0

💡 문제 1.

입력한 숫자의 합, 차, 평균 구하기


✔️소스코드

* 부모 클래스

package com.kh.day08.oop.abstractptpkg.exercise;

public abstract class Calculator {
	// 합 메소드
	public abstract int add(int a, int b);
    // 차 메소드
	public abstract int substract(int a, int b);
    // 평균 메소드
	public abstract double average(int [] a);
}

// 추상클래스(부모클래스)에 꼭 구해야하는 합, 차, 평균 메소드 생성
* 자식 클래스

package com.kh.day08.oop.abstractptpkg.exercise;

import java.util.Scanner;

public class GoodCalc extends Calculator {

	@Override
	public int add(int a, int b) {
		// a와 b를 합하여 리턴!
		// int result = a + b;
		// return result;
        // 위와 같이 작성할 수도 있지만, retrun a+b 로 간략하게 리턴 값 작성할 수 있음.
		return a+b;
	}

	@Override
	public int substract(int a, int b) {
		// a와 b를 빼서 리턴!
		// int minus = a - b;
		return a-b;
	}

	@Override
	public double average(int[] a) {
		// 배열을 입력받아 평균을 구한 뒤 그 값을 리턴
		// 평균 = 전체함 / 갯수
		// 전체합은 배열에서 하나씩 꺼내서 합해줘야 하므로 누적합 해야함
		// 누적합 => sum += num;
		
		// a와 b를 입력받아 평균을 구한 뒤 그 값을 리턴
		int sum = 0;
		for(int i = 0; i < a.length; i++)
			sum += a[i];
		double avg = sum / (double)a.length;
		return avg;
	}
}

// 추상클래스에 필요한 메소드를 만들어놓고 실체클래스를 추상클래스를 상속해서 생성하면
// 이클립스에서 자동으로 오버라이드 할 수 있는 기능을 제공한다!
* 실행클래스

package com.kh.day08.oop.abstractptpkg.exercise;

public class CalcRun {
	public static void main(String[] args) {
		// Calculator calc = new Calculator();
		// 추상클래스는 객체 생성이 불가능.
		// 오류메세지 : Cannot instantiate the type Calculator
		Calculator calc = new GoodCalc(); // 업캐스팅
		int [] a = {1,2,3,4,5};
		System.out.printf("합 : %d\n", calc.add(1, 2));
		System.out.printf("차 : %d\n", calc.substract(20, 10));
		System.out.printf("평균 : %.2f", calc.average(a));
	}
}
profile
꾸준히

0개의 댓글

관련 채용 정보