final 키워드는 정말 불변인가?
·
Java
final 키워드는 불변 ?흔히 final 키워드를 사용하는 이유로불변을 보장해주니까요!라고 얘기한다. 그렇다면 정말 final은 불변을 보장해줄까? final 키워드를 사용했을 때 많이들 언급하는 이점으로변경 불가불변정도가 있을 것 같다. 해당 글에선 불변에 초점을 맞춰서 얘기해 볼 것이다.final 사용범위final 키워드는클래스 레벨메서드 레벨변수 레벨에서 사용될 수 있다. 모두 다 중요한 개념이니, 하나씩 간단하게 짚고 가보자.final class클래스를 final로 선언하면 상속이 불가하다. final 키워드는 재할당을 금지하기 때문에 오버라이딩(재정의) 할 수 없다.따라서 클래스를 final로 선언하면 자식에서 부모의 메서드를 오버라이딩 할 수 없다.🤔 메서드가 없는 final 클래스는 왜 ..
Enum 사용 시 생각해 볼거리
·
Java
우테코 프리코스 로또 미션의 코드리뷰를 보다가 Enum 사용에 관한 피드백을 받게 되었습니다. "ENUM 이 로직의 일환인 조건 파악을 가져도 된다고 생각한 기준이 있나요?"위 피드백을 받게 된 로직을 살펴보겠습니다.우선, 로직을 간략하게 설명하자면, 로또 등수를 계산하기 위해서 일치하는 당첨 번호 개수와, 보너스 번호 당첨 여부를 매개변수로 받아서 LottoRank를 순회하며 isMatchingCondition() 메서드를 통해 일치하는 당첨 등수를 반환하는 로직 입니다.구현 이유구현 할 당시에는 "당첨 등수가 자신의 당첨 등수를 계산하는 책임을 가지는 것이 맞는 것 아닌가?" 라는 생각으로 구현했습니다.그래서 Enum과 함수형 인터페이스를 사용해서 각각의 상수에 메서드를 오버라이드 하여 각 상수별로 ..