无涯教程-Kotlin - 内部类

嵌套类

嵌套类就是在另一个类内部创建的类。在Kotlin中,嵌套类默认情况下是静态的,因此无需创建类的对象即可访问其数据成员和成员函数。嵌套类无法访问外部类的数据成员。

class outerClass{
   //外部类代码
    class nestedClass{
      //嵌套类代码
    }
}

嵌套类示例

class outerClass{
    private var name: String = "Ashu"
    class nestedClass{
        var description: String = "code inside nested class"
        private var id: Int = 101
        fun foo(){
         // print("name is ${name}")//不能访问外部类成员
           println("Id is ${id}")
        }
    }
}
fun main(args: Array<String>){
     // 嵌套类必须初始化
     println(outerClass.nestedClass().description)//访问属性
     var obj = outerClass.nestedClass()//对象创建
     obj.foo()//访问成员函数
}

输出:

code inside nested class
Id is 101

内部类

内部类是在另一个具有关键字inner的类中创建的类。换句话说,无涯教程可以说标记为“内部”的嵌套类称为内部类。

内部类不能在接口内部或非内部嵌套类中声明。

class outerClass{
   //外部类代码
    inner class innerClass{
      //嵌套类代码
    }
}

内部类优于嵌套类的优点是,即使它是私有的,它也可以访问外部类的成员。内部类保留对外部类对象的引用。

内部类示例

class outerClass{
     private  var name: String = "Ashu"
     inner class  innerClass{
       var description: String = "code inside inner class"
       private var id: Int = 101
       fun foo(){
        println("name is ${name}")//访问外部类成员甚至私有
        println("Id is ${id}")
       }
    }
}
fun main(args: Array<String>){
    println(outerClass().innerClass().description)//访问属性
    var obj = outerClass().innerClass()//对象创建
    obj.foo()//访问成员函数

}

输出:

code inside inner class
name is Ashu
Id is 101

Kotlin - 内部类 - 无涯教程网无涯教程网提供嵌套类嵌套类就是在另一个类内部创建的类。在Kotlin中,嵌套类默认情况下是静态的,因...https://www.learnfk.com/kotlin/kotlin-nested-class-and-inner-class.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值