마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 컴포넌트에서 this의미

0 추천

여기서 this는 어떤걸 의미 하는지 알려주세요...ㅠㅠㅠㅠㅠ

 

songjae5426 (940 포인트) 님이 1월 19일 질문

1개의 답변

+1 추천
 
채택된 답변

해당 API 를 보면 이렇게 선언 되어 있습니다.

public static int checkSelfPermission(@NonNull Context context, @NonNull String permission)

그리고 Context는 선언부는 다음과 같습니다.

public abstract class Context extends Object

따라서 this는  Context를 상속받은 클래스의 인스턴스입니다. 

님의 코드가 액티비티 안에 있는 걸로 보이는데, 액티비티 클래스를 보시면 아래처럼 되어 있습니다.

java.lang.Object
   ↳android.content.Context
    ↳android.content.ContextWrapper
     ↳android.view.ContextThemeWrapper
      ↳android.app.Activity

 

Activty 클래스는 Context를 상속받았기 때문에 님의 코드에서 this는 위의 코드를 호출하고 있는 Activity의 인스턴스입니다.

 

spark (188,520 포인트) 님이 1월 19일 답변
songjae5426님이 1월 20일 채택됨
정확히는 그럼 MainActivity를 호출해서 context를 이용하는건가요 아님 Activity클래스를 호출해서 context를 이용하는거나요...?
호출하는게 아니구요, 참조를 하는 겁니다. this는 자기자신을 가리킵니다. 즉, MainActivity는 아직 인스턴스가 아니라 클래스이기 때문에 이 클래스의 생성될 인스턴스를 this를 통해 가리키는 겁니다. 코딩 시점에서는 인스턴스가 생성된게 아니라 런타임에 생성이 되니까, this란 키워드를 통해서 런타임에 생성될 인스턴스를 참조하도록 해주는 겁니다.
...