Kotin 的代理和委托

代理和委托——大头儿子和小头爸爸的洗碗案例

委托,把自己不干的事情交给别人做
代理,做别人委托的事情
kotlin中接口代理关键字:by

1、场景说明(举例)
围裙妈妈只负责做饭,不负责洗碗
小头爸爸洗一次碗可以赚到10元
大头儿子洗一次碗可以赚到1元
小头爸爸承揽了洗碗的活,最终交给大头儿子做,中间赚了9元差价

2、代码实现——完全委托
(1)、定义洗碗的接口

// An highlighted block
interface IWashBow {    //定义一个洗碗接口,包含一个洗碗方法
    fun washBow()
}

(2)、大头儿子实现接口
class BigHeadSon:IWashBow {    //被实现的接口后面不需要加()
    override fun washBow() {
        println("我是大头儿子,每次洗碗赚1元钱")
    }
}

(3)、小头爸爸实现接口并委托事件给小头儿子
class SmallHeadFather:IWashBow by BigHeadSon(){     //委托关键字 by;被委托方(即代理方)如果不是单例类,则后面需要跟()

}

(4)、程序调用及输出结果
fun main(args: Array<String>) {
    var father=SmallHeadFather()
    father.washBow()    //小头爸爸已经将洗碗的操作委托为小头儿子了,所以,此处本质是调用的小头儿子的洗碗操作
}

以上是Kotlin的代理和委托
还有一些空值
空值处理

以 null 表示空值
kotlin 中定义方法时,默认接收的是 非 null 参数。
如果定义某个方法可以接收 null参数,则在声明方法参数时在参数后面加上?。示例如下:

// An highlighted block
fun test(str1:String?){    //String 后面的 ? 就表示该方法可以接收 null 作为参数
    //DO STH 
}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值