479
2014-08-27 23:48:46
0
혹시 자바의 implements, interface, listener 라는 개념을 아시는지요?
우선 사전지식입니다.
일반적으로 어떠한 이벤트(터치를 한다던지, 버튼을 누른다던지, 창이 닫히는 등)가 일어나는지에 대해 계속 주시하고 주시하고 있는 상황을
이벤트를 리슨(Listen)한다라고 합니다.
그리고 그것을 리슨하는 함수를 리스너라고 하구요.
리스너는 일반적으로 인터페이스로 정의가 되어 있습니다.
인터페이스로 정의 되어 있다는 말은 상속을 받을 때 반드시 오버라이드하여 정의해야 하는 함수가 있다는 말이구요.
그리고 어떤 함수를 상속을 하는게 아니라 기능 만을 구현을 하기위해서 사용하는 키워드가 implements입니다.
자바에서 상속(extend)은 하나밖에 받을수 없지만, 구현(implements)은 여러개를 할 수 있는 것이 특징이구요.
그래서 클릭하는 이벤트는 클릭리스너를 구현(implements)하여 만듭니다.
(만약 정, implements가 싫다하시면, 리스너를 상속하여 만든 클래스를 만들고, 그 클래스의 인스턴스를 이용하여 등록을 하셔도 됩니다.)
한마디로, 어떠한 뷰로부터 클릭이라는 이벤트를 감지 하기 위해서는 리스너를 구현해야 합니다.
(기본적인 예에서는 button을 주로 사용하므로 앞으로 Button이라 하겟습니다만, 모든 뷰는 리스너에 등록 할 수 있습니다)