자바의 main메소드의 역할을, 안드로이드에서는 Activity를 상속받아 구현하게되는 onCreate메소드가 대신하고 있다고 알고 있는데요.


이때 이러한 메인의 역할을 하는 클래스는 컴파일후 실행이 될때 시스템이 임의의 객체를 하나 생성하여 실행을 하는 건가요?


갑자기 이게 궁금해진 이유가...안드로이드 프로그래밍 정복 1권을 공부하면서 거의 막바지인 Window 파트에 들어왔는데


거기에서 드래그/드랍을 이용해 스크롤뷰 내에서 아이템들의 순서를 조절하는 예제가 나오거든요.


개인적으로 그 예제를 백지상태에서부터 만들어가며 연습하는 중인데, 


그중에서 onInterceptTouchEvent(MotionEvent ev)를 오버라이딩하기 위해서 스크롤뷰를 상속하여 새로 클래스를 만드는 부분이 있습니다.


이 부분의 소스 자체를 어렵지도 않고 짧으니 잠시 적자면




// 드래그를 지원하는 스크롤 뷰. 터치 가로채기 메서드를 

//재정의하여 부모에게 보내주는 역할만 한다.

class ReorderScrollView extends ScrollView {


//DragReorder클래스가 위에서 언급한, '메인'의 역할을 하는 액티비티 클래스입니다.

DragReorder mParent;


//생성자는 생략


// 좌표는 리스트 뷰 좌상단 기준 좌표이며 스크롤 상태는 고려 안됨.

public boolean onInterceptTouchEvent(MotionEvent event) {

if (mParent.onInterceptTouchEvent(this, event) == false) {

return false;

}

boolean result = super.onInterceptTouchEvent(event);

Log.d(DragReorder.TAG, "onInterceptTouchEvent return = " + result);

return result; 

}

};


이렇게 됩니다만,


여기서 진하게 표시된 부분이 궁금한 것이...


DragReorder 객체를 생성하지 않았음에도 불구하고 지금 mParent.onInterceptTouchEvent(this,event)를 통해 메소드에 접근하고 있거든요.(static 선언은 되어있지 않습니다.)


어떻게 이런 접근이 가능한지가 궁금합니다. 


혼자 독학을 하는 중이라 초보적인 질문일지도 모르겠습니다만, 성의껏 답변해주시면 감사하겠습니다 ㅜㅜ