两个构造函数之间的区别是什么?

时间:2017-12-13 18:11:21

标签: kotlin

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

class ColorsArray(context: Context) {}

class ColorsArray(var context: Context){}

2 个答案:

答案 0 :(得分:8)

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

val colorsArray = ColorsArray(context)
println(colorsArray.context)

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

colorsArray.context = someOtherContext

在主要构造函数中声明的属性包含在文档here中。

答案 1 :(得分:0)

在第一种情况下,构造函数采用context参数并且不执行任何操作。

在第二种情况下,提供了代码示例:

class ColorsArray(var context: Context) { }

是:

的快捷方式
class ColorsArray(context: Context) {
    var context: Context = context
}