자바, inner class 에 대한 이야기. |
자바를 사용하다 보면 항상 적게 사용하는 녀석들은 정확히 개념을 못 잡기 마련이다.
필자에게는 그런 것 중 하나가 inner class 인데, 사용은 잘 하지만 IDE 에 의존하는 경향도 있기 떄문에 정확히 개념을 잡아본다.
inner class
Class 안에 정의된 내부 클래스로, 외부 클래스의 자원을 마치 자기 것처럼 사용할 수 있다는 장점이 있다. Inner class 로 정의하지 않은 경우에는 outer class 의 자원을 파라미터로 다 넘겨주어야 하기 떄문에 복잡해질 수 있다. 일반 inner class 는 맴버변수의 level 로 정의된다. 따라서 outer class 의 instance가 있어야 inner class 를 new 를 통해서 만들 수 있다.
static inner class
inner class는 outer class의 맴버 변수 레벨로 정의된다. 따라서 static inner class 의 경우는 outer class의 static member 변수와 같다고 볼 수 있다. public static 으로 정의된 inner class 의 경우는 외부 class 에서도 가져다 쓸 수 있다. private inner class 의 경우에는 static 특성을 생각해보면 쉬운데, outer class 의 맴버변수들을 사용할 수 없지만, outer class의 static 변수들은 맘껏 가져다 쓸 수 있다.
Anonymous Inner Class
이 익명의 내부클래스는 안드로이드를 하다 보면 쉽게 접할 수 있는 형태다.
view.setOnClickListener( new OnClickListener(){
public void onClick( VIew v ){
// ... do sth
}
}
요것이 익명 내부 클래스이다. 아하 싶을 것이다. 용어를 몰랐으니..
주로 단 한번만 사용할 목적으로 사용한다.
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[Java] JDK 1.7 부터는 String 에 대해 switch 문을 쓸 수 있다!? (0) | 2013.08.11 |
---|---|
[android] MIME Type 을 쉽게 얻어와보자! (0) | 2013.08.11 |
[android] framework 의 service와 broadcast (0) | 2013.08.09 |
[android] Context 관련된 메모리 누수 문제를 피하고 싶다면? (2) | 2013.08.09 |
[android] MultipartEntity 내용 print out (0) | 2013.08.08 |
댓글