kotlin扩展函数,扩展属性,伴生对象简要

本文详细介绍了Kotlin中的扩展函数、扩展属性以及伴生对象。扩展函数允许为已有类添加新功能,而无需继承或使用装饰者模式。扩展属性可以在不修改原有类的情况下增加属性。伴生对象则提供类似静态成员的功能,其内部成员可以像静态方法一样直接通过类名调用。文中还探讨了伴生对象的类内和类外扩展的区别及调用规则。
摘要由CSDN通过智能技术生成

kotlin扩展函数,扩展属性,伴生对象

kotlin扩展函数

  • 扩展函数可以在已有类中添加新的方法,不会对原类做修改
  • 扩展函数是静态解析的
  • 若扩展函数和成员函数一致,则使用该函数时,会优先使用成员函数
  • 扩展一个空对象,在扩展函数内, 可以通过 this 来判断接收者是否为 NULL,这样,即使接收者为 NULL,也可以调用扩展函数

kotlin扩展属性

扩展属性允许定义在类或者kotlin文件中,不允许定义在函数中。初始化属性因为属性没有后端字段(backing field),所以不允许被初始化,只能由显式提供的 getter/setter 定义。

val <T> List<T>.lastIndex: Int
    get() = size - 1

kotlin伴生对象

伴生对象内的成员相当于 Java 中的静态成员,其生命周期伴随类始终,在伴生对象内部可以定义变量和函数,这些变量和函数可以直接用类名引用。

对于伴生对象扩展函数,有两种形式,一种是在类内扩展,一种是在类外扩展,这两种形式扩展后的函数互不影响(甚至名称都可以相同),即使名称相同,它们也完全是两个不同的函数,并且有以下特点:

(1)类内扩展的伴随对象函数和类外扩展的伴随对象可以同名,它们是两个独立的函数,互不影响;
(2)当类内扩展的伴随对象函数和类外扩展的伴随对象同名时,类内的其它函数优先引用类内扩展的伴随对象函数,即对于类内其它成员函数来说,类内扩展屏蔽类外扩展;
(3)类内扩展的伴随对象函数只能被类内的函数引用,不能被类外的函数和伴随对象内的函数引用;
(4)类外扩展的伴随对象函数可以被伴随对象内的函数引用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值