티스토리 뷰

kotlin

Kotlin - Nested / Inner class

길 킴 2019. 8. 25. 21:30
728x90

1. Nested class

Nested: 내포된 이라는 뜻으로, Class 안에 있는 일반 Class 가 있는 경우를 말한다. 

class Outer {
    class Nested {
        val a = 1
    }
}    

java 로 Decompile해보면 아래와 같다. 

static 처리가 되어 있어서 아래와 같이 Nested 클래스를 호출할 수 있다. 

Outer.Nested()

 

※ 주의 사항

Kotlin에서 Nested Class는 내부적으로 Static 처리를 한다는 것이다. 
Java에서 Nested Class를 선언하면 Static 이 아니란 걸 주의하면 된다. 
(안드 개발시 Kotlin과 Java를 왔다갔다 하면서 사용할 일이 많아서 둘다 알아야 한다...)


2. Inner class

Java에서 Nested Class 선언하는 것과 비슷하다.

즉, static 처리를 하지 않기 위해 Inner 를 사용한다는 것

class Outer {
    inner class Nested {
        val a = 1
    }
}    

사용은 아래와 같다. 

Outer().Inner()

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함