Java/Java 연습 문제

[Java 연습 문제] 상속을 사용하여 인터페이스 구현

Joo.v7 2024. 8. 31. 17:40

Adder와 Multiplier는 두 숫자를 인자로 받아 연산하는 같은 행위(Common Behavior)를 수행한다. 이 공통된 행위를 interface로 만든다.(BinaryOp) 그 후 Adder와 Multiplier는 이를 implements 한다.

 

코드

BinaryOp.java

interface BinaryOp {
    int apply(int left, int right);
}

 

Adder.java

class Adder implements BinaryOp {
    public int apply(int left, int right) {
        return left + right;
    }
}

 

Multiplier.java

public class Multiplier implements BinaryOp {
    public int apply(int left, int right) {
        return left * right;
    }
}

 

Algorithm.java

public class Algorithm {
    static final int addFrom1To10 = 55;
    
    public static int sigma(int begin, int end, int step) {
        return accumulate(new Adder(), 0, begin, end, step); 
    }

    public static int pi(int begin, int end, int step) {
        return accumulate(new Multiplier(), 1, begin, end, step);
    }

    static int accumulate(BinaryOp binder, int init, int begin, int end, int step) {
        int result = init;
        for (int next = begin; next <= end; next = next + step) {
            result = binder.apply(result, next);
        }
        return result;
    }

    public static void main(String[] args) {
        System.out.println(sigma(1, 10, 1));
        System.out.println(pi(1, 10, 1));
    }
}

 

실행 결과

55
3628800

 

 

2024.08.30 - [Java] - [Java] 10. Java에서의 상속

 

 


 

 

출처: https://github.com/gikpreet/class-programming_with_java/tree/master

 

GitHub - gikpreet/class-programming_with_java

Contribute to gikpreet/class-programming_with_java development by creating an account on GitHub.

github.com