작성
·
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키워드를 많이 사용합니다.
빠르게 답변해주셔서 감사합니다.
좋은하루 보내세요.