쓰이는 이유
사용하는 곳
특징
사용법
속성 or 함수 사용 : a.b().intro()
바깥클래스.내부클래스()로 표현
class a{
class b{
fun intro(){
print()
}
}
}
// 사용시 - a.b()로 사용
쓰이는 이유
사용하는 곳
특징
사용법
this@Outer.(속성 or 함수) 써야함class a{
var text = "a"
inner class b{
var text = "b"
}
}
class Outer{
var text = "outer class"
class Nested{
fun intro(){
var text = "nested text"
println("nested class")
}
}
inner class Inner{
var text = "inner class"
fun introin(){
println(text) //or this.text도 상관없음
}
fun introout(){
println(this@Outer.text) //outer text쓰려면
//this@바깥 클래스.변수
}
}
}
fun main(){
Outer.Nested().intro() //nested class
val outer = Outer()
val a = outer.Inner()
a.introin() //inner class
a.introout() //outer class
}
nested
inner