1、内部类
代码实现身体解构,模拟内部类逻辑
内部类需要用 inner 关键字修饰
class Body(_bodyInfo:String){
val bodyInfo=_bodyInfo
//外部类能访问内部类
fun showInfo(){
Heart().run()
}
//默认情况下:内部的类不能访问外部类,需要增加inner修饰符成为内部类才可以访问外部类
inner class Heart{
fun run(){
println("心脏访问身体信息:$bodyInfo")
}
}
inner class Kidney{
//肾脏
fun run(){
println("肾脏访问身体信息:$bodyInfo")
}
}
inner class Hand{
inner class leftHand{
//左手
fun toLeft(){
println("左手访问身体信息:$bodyInfo")
}
}
inner class rightHand{
//右手
fun toRight(){
println("右手访问身体信息:$bodyInfo")
}
}
}
}
2、内部类特点
- 内部的类能访问外部类
- 外部类也能访问内部类
3、内部类调用
//内部类调用
Body("Hello").Heart().run()
Body("Hello").Hand().leftHand().toLeft()
输出
心脏访问身体信息:Hello
左手访问身体信息:Hello
4、嵌套类
Kotlin中如果没有关键字修饰,那么默认就是嵌套类
class Outer(_info:String){
val info="嵌套类信息"
val info2=_info
fun showInfo(){
Nested().run()
}
class Nested{
fun run(){
println("嵌套类,run信息")
}
}
}
5、嵌套类特点
- 内部的类不能访问外部的类
- 外部类能访问内部嵌套类
6、嵌套类调用
//嵌套类调用
Outer.Nested().run()
输出
嵌套类,run信息