[본캠프] ++

윤영범·2026년 3월 21일

Enum,제네릭,람다 & 스트림을 이용한 계산기 만들기

요구사항

  • Enum 사용
  • 실수(double)타입의 값을 전달받아도 연산이 수행가능
  • 저장된 연산들 중 Scanner로 입력받은 값보다 큰 결과값들을 출력

기존코드에서 수정해야할점

  • 기존 연산자(+,-,/,*)들 Enum으로 묶는다
  • Scanner로 가져왔던 타입을 (int,String) Generic T으로 변환한다
  • Stream 에서 resultList를 가져와서 필터기능으로 구분하고 출력한다 (num -> num > result;)

Enum

정해진 값들만 가지는 특별한 클래스

ex) enum Day{
MON,TUE,WED... 변수가 아니라 객체 3개를 가진 DAY라는 클래스

public static final Day MON = new Day();
public static final Day TUE = new Day();
public static final Day WED = new Day(); 

내 계산기 코드를 예를들어설명하면

기존엔 계산기 하나로 (+,-,*,/) 연산을 진행했다면,
새로운 챕터에서는 더하기계산기,빼기계산기,나누기계산기,곱하기계산기로해서 여러대의 계산기로 연산을 진행할수있다

switch문을 -> enum으로 변경

정리

1.메인 ( 입력,출력)
2,calculator class (계산)
2-1 타입매개변수로 받아야함 (setter)
2-2 람다,스트림을 활용한 조회기능
ex).filter result > resultlist .stream
3.operation enum class (switch문을 대신함)

문제점
Enum 정의, calculator의 적용을 아직 제대로이해못하겠다
모르는게 있을때마다 강의 찾아보면서하고있는데 머리속으로 들어올거같으면서도 또 헷갈리고 그런다 생각해봐야할거

  • 메인에서 타입매개변수로 실수,연산자 받아야하는데 enum클래스에서 그에 맞는 객체를 가져와야하는데 그걸 calculator에서 어떻게?
  • 람다식으로 조회기능 구현을 어떻게할것인가? 기존 컬렉션과의 연결관계?

계속 찾아보면서 생각해봐야겠다

0개의 댓글