인프런 커뮤니티 질문&답변

느루님의 프로필 이미지
느루

작성한 질문수

스프링 핵심 원리 - 기본편

AppConfig 리팩터링

접근 제어자 관련 질문입니다.

작성

·

245

1

제가 아직 자바 기본 개념이 많이 미숙한가봅니다... 접근제어자에 관한 질문이 좀 있는데요.

1. OrderServiceImpl 등에서 MemberRepository와 DiscountPolicy가 private final로 선언되는 이유가 궁금하고,

2. AppConfig 리팩토링에서 왜 memberRepository()는 접근 제어자가 private인 반면, discountPolicy()는 public으로 하셨는지 궁금합니다.

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 귀승님

1. private final은 해당 필드를 내부에서만 사용하고(외부에 공개하지 않고) 생성자로 설정한 이후에는 변경하지 않겠다는 뜻입니다. 꼭 이렇게 하지 않아도 되지만, 다른 곳에서 실수로 접근하거나 변경하는 것을 막기 위함입니다.

2. AppConfig의 memberRepository()는 public이어도 됩니다. 제가 IDE가 자동으로 해주는 리펙토링 기능 때문에 private으로 두었네요^^;

감사합니다.

느루님의 프로필 이미지
느루

작성한 질문수

질문하기