Hyeok의 웹 개발 블로그

<2025.03.05> 계산기 과제 Lv.2 본문

TIL/Java

<2025.03.05> 계산기 과제 Lv.2

Yhyeok 2025. 3. 5. 23:40
  • 클래스 없는 기본적인 계산기를 통해 클래스를 하나 추가하여 계산기를 만들어보았다.

 

  • 조건
    1. 사칙연산을 수행한 후, 결과 값을 반환하는 메서드 구현
    2. 연산 결과를 저장하는 컬렉션 타입 필드를 가진 Calculator 클래스를 생성
    3. 연산 수행 및 저장은 Calculator 클래스에서 담당하기
    4. 이전과 동일하게 작동하기
    5. Getter 와 Setter 메서드 활용하기
    6. 연산 결과 중 가장 먼저 저장된 데이터를 삭제 하는 기능을 가진 메서드를 구현한 후 main 메서드에서 활용

이와 같은 조건을 가지는 계산기를 만들어 보았습니다.

 

 우선 사칙연산을 수행한 후 , 결과값을 반환하게 만들기위해 각 결과 값이 나오면 
return 을 활용해서 반환해 보았습니다. 

return result;

 

그리고 결과 값을 저장하기 위해서 결과 값을 저장하는 List 를 생성하고 저장하였습니다.

private ArrayList<Integer> arrayList = new ArrayList<>();
private List<Integer> results;
results.add(result);

 

다음으로 연산 수행 및 저장을 Calculator 클래스에서 하기위해 Calculator 클래스에 연산 기능을 하는 메서드와 저장 및 반환하는 메서드도 같이 만들어 보았습니다.

public int sum (int number, int number2) {
    int result = number + number2;
    results.add(result);
    System.out.println("result = " + result);
    return result;

}

public int sub (int number, int number2) {
    int result = number - number2;
    results.add(result);
    System.out.println("result = " + result);
    return number - number2;

}

public int mul (int number, int number2) {
    int result= number * number2;
    results.add(result);
    System.out.println("result = " + result);
    return number * number2;

}

public int div (int number, int number2) {
    int result= number / number2;
    if (number2 == 0) {
        System.out.println("0으로는 나누기를 할 수 없습니다!");
    }
    results.add(result);
    System.out.println("result = " + result);
    return number / number2;
}

그리고 App 클래스 main 메서드에 있던 연산 수행 메서드를 지우고 

int result = 0;
switch (operation) {
    case "+":
        result = calculator.sum(number,number2);
        break;
    case "-":
        result = calculator.sub(number, number2);
        break;
    case "*":
        result = calculator.mul(number,number2);
        break;
    case "/":
        result = calculator.div(number,number2);
        break;
    default:
        System.out.println("올바른 연산자를 입력하세요!! ");
}

Calculator 클래스의 기능을 가져오게 하고, 이전과 동일하게 작동하는 것을 확인했습니다.

 

다음 조건인 Getter와 Setter를 Calculator 클래스에 설정해주었습니다.

public Calculator() {
    this.results = new ArrayList<>();
}
public List<Integer> getResults(){
    return this.results;
}

 

 

-  트러블 슈팅(Troubleshooting)

  • 우선 마지막 조건인 remove 조건을 사용하지 못했습니다. remove 를 사용하면 될 것이라는 생각은 있지만,
    어떻게 적용해야하는지 활용법을 정확히 몰라 적용하지 못했습니다. 추가적인 학습을 진행해서 적용해 볼
    예정입니다.

 

- 마무리

  • 계산기 lv1, lv2 를 하면서 많은 문제점과 느끼는 점이 있었습니다. 
    우선 문법과 개념을 학습했기 때문에 자유롭게 사용이 가능 할 것이라 생각했지만,
    어느 문법을 어떤 상황에 적용해야 하는지, 어떤 방식으로 적용해야하는지에 대해 정확히 알지 못하는
    문제점을 발견했습니다. 이런 과정을 겪으면서 느낀점은 하나의 코딩을 진행할 때, 전체적인 조건과 틀을 짜는 것이 
    중요하다는 것을 느꼈습니다. 우선 어떠한 방식으로 구성하고 진행할 것인지 틀을 생각하고 시작해야 막히는 부분에서 빠르게 해결이 가능하다 생각했습니다. 
     계산기 과제를 피드백받아 완벽하게 학습해야 할 것이고, 앞으로 코딩을 진행할 때, 어떠한 방식으로 진행할 것인지 
    생각하고 시작하는 습관을 가져겠다는 생각을 했습니다.