当前位置:网站首页>九、Kotlin基础学习:1、Companion的扩展方法和扩展属性;2、一般类的扩展方法和扩展属性;3、委托;
九、Kotlin基础学习:1、Companion的扩展方法和扩展属性;2、一般类的扩展方法和扩展属性;3、委托;
2022-07-30 05:43:00 【¥伊人独醉】
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
日志:
边栏推荐
- 互联网商城盲盒app为何如此火爆
- Monstache执行Monstache - f配置。toml出错不存在处理器类型和名称(附件)(= parse_exc类型
- Nodejs PM2 monitoring and alarm email (2)
- sqli-labs shooting range SQL injection learning Less-1
- Jackson serialization failure problem - oracle data return type can't find the corresponding Serializer
- Remember a Mailpress plugin RCE vulnerability recurrence
- 【零基础搞定C语言——导航汇总篇】
- Competition WP in May
- sql concat()函数
- Powerhouse Cup Preliminary WP
猜你喜欢
十九、Kotlin进阶学习:1、管道数据的收和发;2、管道的关闭;3、生产者和消费者;4、管道的缓存区;
protobuf coding and network communication applications (1)
Competition WP in May
sql中 exists的用法
Function functional interface and application
学生成绩管理系统(C语言版)
Servlet basic principles and application of common API methods
C#下利用开源NPlot绘制股票十字交叉线
互联网商城盲盒app为何如此火爆
protobuf编码及网络通信应用(一)
随机推荐
Function 函数式接口及应用
Trust anchor for certification path not found.异常解决方法。
MySQL 特殊语句及优化器
php vulnerability full solution
学生成绩管理系统(C语言版)
Flink CDC 实现Postgres到MySQL流式加工传输案例
Using PyQt5 to add an interface to YoloV5 (1)
MySQL - 多表查询与案例详解
MYSQL一站式学习,看完即学完
MySQL - Multi-table query and case detailed explanation
Detailed explanation of regular expression syntax and practical examples
C#下利用开源NPlot绘制股票十字交叉线
【MySQL功法】第5话 · SQL单表查询
MySQL 索引优化及失效场景
MySQL开窗函数
Briefly describe SSRF
[Getting C language from zero basis - navigation summary]
第一个WebAssembly程序
SQL Server database generation and execution of SQL scripts
Jackson serialization failure problem - oracle data return type can't find the corresponding Serializer