TIL - 계산기 Lv2. 진짜 최종..

Jiyeong Kim·2025년 1월 9일

TIL

목록 보기
6/24

오류1

System.out.println("전체 연산 기록 :" + calculator.getRecords()); 
  • getter는 출력이 되어 테스트가 되지만
  • Setter...는 아직도..어떻게 활용해야하는지 모르겠다...

해결1

  • 튜터님의 설명:
    " setRecords(String result) 를 의미한다면 this.records 는 이미 생성자에서 records = new ArrayList<>(); 로 선언되어 있으니 불필요하고,
public void setRecords(String result) {
    this.records.add(result);
    System.out.println("기록이 추가되었습니다.");
}

로 변경할 것을 안내해주셨다.

오류2

다만 이럴 경우 또 다른 한가지의 문제가 생기는데 App Class에서 "calculator.setRecords(result);"를 입력할 경우 result에 빨간줄이 뜨는 오류가 생긴다.

해결2

처음에는 줄위치의 문제인가 했는데, 모든게 문제였다! 정확히는 변수타입의 지정이 옳지 않게 되어있었다.

1) record

연산결과 = 숫자들의 집합, 따라서

private List<String> records; 

이던 것을

private List<Double> records = new ArrayList<>();

위와 같이 바꿔주었다.

이유: 계산 결과가 실수로 나올테니까

따라서

public int calculate(int number1, String Operation, int number2)

로 되어있던 것도

public Double calculate(int number1, String Operation, int number2)

로 바꾸어 준다.

마찬가지로 수정된 코드들

    public List<Double> getRecords() {
        return records;
    }

    public void setRecords(Double records) {
        this.records.add(records);
        System.out.println("기록이 추가되었습니다.");
    }

    public void removeResult(List<Double> records) {
        records.remove(0);
        System.out.println("최종 연산 기록 :");
    }
}




2) result

같은 이유로 int result;로 되어있던 값을
Double result = (double) 0;로 바꾸어 줌

Double result=0; 으로 둘 경우 빨간 줄이 뜨는데 cast expression to double을 눌러서 고쳐준다.







배운 것

  • 인텔리제이가 "이런 식으로 해야하는 거 아냐?" 하고 제안해도 내가 생각해서 맞게 교정할 줄 알아야 함
  • 오류가 뜰때 진정하고 마우스 커서를 가만히 가져다 대기... 인텔리제이가 답을 줄것.. 제발 진정하기..
  • 사실 며칠을 계속 같은 문제를 가지고 setter를 출력시키고자 같은 값을 두번이나 저장하질 않나 코드를 이상하게 악화시켰던 이유는

    이.. 'no usages'때문인데,

말그대로 코드가 활용되고 있지 않다는 뜻이다.

과제조건

  • 간접 접근을 통해 필드에 접근하여 수정할 수 있도록 구현합니다. (Setter 메서드)
  • 위 요구사항을 모두 구현 했다면 App 클래스의 main 메서드에서 위에서 구현한 메서드를 활용 해봅니다.

과제조건이 위와 같아서 setter를 활용하고자 addResult도 만들고... calculator.setRecords(result); 도 적고 했던건데... 튜터님께서 '구현만 하면 된다'..고 하시면서 내 혼란한 방황은 막을 내렸다...

다 틀렸다고 했을땐 심장이 쿵 떨어지는 줄 알았는데 사실 저게 다 푼거라고 하니까 강의 다시 보라고 한 것보다 더 속상했다...이럴 수 가 있나...







그래도 얼추 완성은 했다...

내 누더기같고 초라한 계산기..(소중)🫂

profile
해봅시다

0개의 댓글