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

박정식님의 프로필 이미지
박정식

작성한 질문수

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

소셜 로그인 (5) - 카카오 회원 정보 조회

SocialLoginApiServiceFactory 생성자 관련 질문입니다.

작성

·

183

0

너무 초보적인 내용이라 질문을 해야하나 고민입니다.

private static Map<String, SocialLoginApiService> socialLoginApiServices;

public SocialLoginApiServiceFactory(Map<String, SocialLoginApiService> socialLoginApiServices) {
    this.socialLoginApiServices = socialLoginApiServices;
}

위에 static 필드를 아래의 생성자에서 this 키워드로

설정하는 부분 있는데요...

 

이부분이 아래와같이 하는거하고 차이점이 어떻게 다른지 궁금합니다.

private static Map<String, SocialLoginApiService> socialLoginApiServices;

public SocialLoginApiServiceFactory(Map<String, SocialLoginApiService> socialLoginApiServices) {
    SocialLoginApiServiceFactory.socialLoginApiServices = socialLoginApiServices;
}

답변 1

0

구파고님의 프로필 이미지
구파고
지식공유자

안녕하세요!

기능적으로는 결국 2개의 코드 모두 SocialLoginApiServiceFactory의 socialLoginApiServices를 가르킵니다.

차이점은 제가 봤을 때는socialLoginApiServices가 this라는 키워드로 해당 클래스의 멤버변수임을 직관적으로 알려주고, SocialLoginApiServiceFactory.socialLoginApiServices로 적었을 때는 SocialLoginApiServiceFactory가 어떤 클래스인지 한번 더 생각하게 되지 않을까 싶네요!

 

보통 내부 클래스에서 멤버변수를 접근할 때는 this키워드를 많이 사용합니다.

박정식님의 프로필 이미지
박정식
질문자

빠르게 답변해주셔서 감사합니다.

좋은하루 보내세요.

박정식님의 프로필 이미지
박정식

작성한 질문수

질문하기