• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

23.09.01 11:39 작성 조회수 121

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키워드를 많이 사용합니다.

박정식님의 프로필

박정식

질문자

2023.09.01

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

좋은하루 보내세요.