본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Java] inner class 에 대한 이야기

by 돼지왕 왕돼지 2013. 8. 9.
반응형


 자바, inner class 에 대한 이야기.

 


[Java] 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

}

}


요것이 익명 내부 클래스이다. 아하 싶을 것이다. 용어를 몰랐으니..

주로 단 한번만 사용할 목적으로 사용한다.



반응형

댓글