728x90
1. Nested class
내부에 그냥 class 를 정의하면 static으로 처리한다.
java에서는 기본값이 inner class 이지만, kotlin은 기본값이 nested 즉 static class 이다.
class Outer {
class Nested {
private val bar: Int = 1
fun foo() = bar
}
}
/* 호출 */
val demo = Outer.Nested().foo() // == 2
2. Inner class
class Outer {
private val bar: Int = 1
inner class Inner {
fun foo() = bar
}
}
/* 호출 */
val demo = Outer().Inner().foo() // == 1
3. Anonymous inner class
recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
//오버라이드 함수 내용 생략
override fun onScrolled() {
}
override fun onScrollStateChanged() {
}
})
'kotlin' 카테고리의 다른 글
Kotlin - Nested / Inner class (0) | 2019.08.25 |
---|---|
Kotlin 자세히 알아보기 -Higer-Order Function (0) | 2019.08.18 |
Kotlin 자세히 알아보기 - apply, with, let, also, run (0) | 2019.08.15 |
Kotlin 자세히 알아보기 - data class, singleton (0) | 2019.08.15 |
Kotlin 자세히 알아보기 - companion object, sealed classes (0) | 2019.08.11 |