일단 제가 한가지 이야기하지면 main 함수라고 하는 것인 아마 생성자를 이야기하는 것 같은데요.
일단 잘못아시는 것중 가장 큰건 생성자(Constructors) 는 있습니다.아마 대부분 Activity를 만들다 보시면 생성자를 생략하고 onCreate(..)에서 초기화등을 처리하기 때문에 그렇게 느끼실수 있지만, 묵시적으로 상속받은 부모클래스의 생성자를 이용해서 생성하기 때문에 없는 것 처럼 보일뿐입니다.
다음으로 사용자 메소드의 실행시기는 사용자가 만들었기때문에 사용자가 정의 합니다. 사용자 정의 메소드라고 하시고 질문한 부분도 약간 이상한 부분이 계신데요. 제가 느끼기엔 이벤트 처리 함수들에 대해서 물으시는 듯한 느낌이 강합니다.onBackPressed 는 일반적으로 사용자 정의 메소드라기 보다는 Override. 즉 부모의 이벤트 처리 메소드를 제정의하는 메소드입니다.그리고 일반적으로 on으로 시작하는 메소드들은 특정 이벤트가 발생했을때의 처리를 담당하게 되는 메소드입니다. 이런 부분들은 이미 부모 클래스에 추상화 되어 정이된 부분을 제정의해서 쓰게 되게 됩니다. 물론 이벤트 핸들링을 위해서 인터페이스를 상속받거나 해당 오브젝트에 할당해서 사용할수도 있습니다.
대충 여기까지 하고 안드로이드와 자바가 많이 달라보이는 이유는 java는 최상위 클래스부터 시작해서 application을 구현하나 android는 많이 상속받은 activity부터 시작하는 것때문에 차이를 느끼시는 듯합니다.
java.lang.Object-android.content.Context-android.context.contextwrapper-android.view.contextthemewrapper-android.app.activity
사용자는 저 Activity 클래스를 다시 상속받아서 시작하게 되는 것입니다.
아무튼 이벤트 헨들러를 직접 구현하는 정도까지 공부하시게 되면 좀더 많이 보이실 것 같습니다.
다른 여러분들을 추천과 같이 열심히 공부하셔야 할 것 같습니다. ^^