Kotlin 嵌套类和内部类

一.嵌套类

  1. 嵌套类是什么
    嵌套类就是一个类嵌套在另一个类里面
  2. 嵌套类的写法
class QianTaoOuter {
    var className: String = "QianTaoOuter"
    var classNameLength: Int = 4

    class QianTaoInner {
        var className: String = "QianTaoInner"
        var classNameLength: Int = 5
    }
}
3.嵌套类实例化 **外部类.内部类()**
 var qianTaoInner = QianTaoOuter.QianTaoInner()
4.嵌套类中 内部的类不能获取外部类的属性和方法

二.内部类

  1. 内部类是什么

    内部类是一种特殊的嵌套类,被嵌套到里面的类使用inner关键字修饰,内部类可以拥有对外部类的引用。但是外部类没有内部类的引用


2.内部类中的 this
  • 仅仅是this,分别表示获取外部类或者内部类自己的引用
  • this@外部类 表示获取外部类的属性和方法的引用
  • this@内部类 表示获取内部类的属性和方法的引用,在外部类中不能使用 this@内部类获取内部类的属性和方法
3.内部类的写法
class QianTaoOuter {
    var className: String = "QianTaoOuter"
    var classNameLength: Int = 4


    inner class QianTaoInner {
        var innerClassName: String = "QianTaoInner"
        var innerClassNameLength: Int = 5
    }
}
4.属性类的使用 **外部类().内部类()**
var qianTaoInner = QianTaoOuter().QianTaoInner()

三.内部类的嵌套关系和子类父类继承关系的比较

  1. 关键字不同:
    继承关系的类是分开的,通过:继承,内部类的关键字是inner
  2. 是否可以重写
    继承关系中子类可以重写父类使用open关键字标识的类,但是内部类没有重写的概念
  3. 访问权限不同
    父类不可直接访问子类,但是内部类可以直接通过外部类().内部类()访问内部类。子类可以直接访问父类公开的属性和方法,但是内部类只能通过 this@外部类获取外部类的属性和方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值