1、Companion的扩展方法和扩展属性;
为一个类的伴生对象添加新的扩展方法和扩展属性。
条件:已有伴生对象。
【案例】伴生对象的扩展方法
Helper.kt
MainActivity.kt
日志:
【案例】伴生对象的扩展属性
MainActivity.kt
日志:
【案例】添加val的companion扩展属性
日志:
2、一般类的扩展方法和扩展属性;
【案例】扩展方法
Student.kt
MainActivity.kt
日志:
【案例】扩展属性
MainActivity.kt
日志:
3、委托;
什么是委托?
某某事情委托别人去办。
软件开发中有一种设计模式叫委托模式,或者叫代理模式。A类的工作交给B类来完成。多个类将共同的工作抽取出来交给另一个类来完成。如果业务发生变化,只需要修改委托类即可。
在kotlin中如何实现委托?
(1)类委托(方法委托)
将某某方法委托给另一个类去实现
语法:
class YYY:Interface by XXX(){}
表示YYY这个类实现了与XXX共同的Interface接口,在定义YYY时,可以不实现Interface接口的方法,将这个实现交给XXX来做。
【案例】
IWork.kt
WorkA.kt
WorkB.kt
MainActivity.kt
日志:
(2)属性委托
将某某属性委托给另一个类
语法:
var/val yyyProperty:类型 by XXX()
将当前类的yyyProperty属性,委托给XXX类来实现。
【案例】student和teacher类都有age这个属性,都需要大于0,设计时,将student的age委托给teacher来处理。
Student2.kt
Teacher.kt
MainActivity.kt
日志: