八、kotlin构造函数笔记

kotlin的构造函数有很多种写法.我将在实际项目中碰到的总结如下
方式1(个人认为是最简洁最好的方式):

1
2
3
4
5
6
7
class Downloader(var url: String, var saveDir: File, var progressListener: IProgressListener) {

}
这么写有3大好处:
1、表示该类有 3个属性, 该类的任何地方都可以使用这3个属性
2、不用再写init代码块进行赋值操作, 这3个属性已经有赋值了
3、这3个属性默认就是不为空,在使用时不用再加烦人的? 或者!!

方式2(稍嫌冗余, 不如方式1)

1
2
3
4
5
6
class Downloader(url: String, saveDir: File, progressListener: IProgressListener) {
var url : String = String
var saveDir : File = saveDir
var progressListener : IProgressListener = progressListener
}
使用这3个属性不用加? 或者!! 相比方式1,多了赋值语句

方式3(最差,不推荐)

1
2
3
4
5
6
7
8
9
10
11
12
class Downloader(url: String, saveDir: File, progressListener: IProgressListener) {
var url : String ?= null
var saveDir : File ?= null
var progressListener : IProgressListener ?= null

init{
this.url = url
this.saveDir = saveDir
this.progressListener = progressListener
}
}
采用这种定义方式,在Downloader类中使用这3个属性时,就得要加上?或者!! 这三个属性用的越多,类中就会有越来越多的? 或者!!