两个构造函数之间有什么不同?

man*_*ing 2 kotlin

这种类型的构造函数有什么不同?

class ColorsArray(context: Context) {}
Run Code Online (Sandbox Code Playgroud)

class ColorsArray(var context: Context){}
Run Code Online (Sandbox Code Playgroud)

zsm*_*b13 8

第二个类不仅声明了一个带有a的构造函数Context,而且还有一个名为property的属性context,它保存传递给构造函数的值.然后您可以这样访问:

val colorsArray = ColorsArray(context)
println(colorsArray.context)
Run Code Online (Sandbox Code Playgroud)

由于您已将其声明为a var而非a val,因此也可以重新分配.

colorsArray.context = someOtherContext
Run Code Online (Sandbox Code Playgroud)

在主构造函数中声明的属性将在此处的文档中介绍.