两个构造函数有什么不同?
这种types的构造函数有什么不同?
class ColorsArray(context: Context) {}
和
class ColorsArray(var context: Context){}
第二个类不仅声明了一个带有Context
的构造函数,而且它还有一个名为context
的属性,用于保存传递给构造函数的值。 你可以像这样访问它:
val colorsArray = ColorsArray(context) println(colorsArray.context)
既然你声明它是一个var
而不是一个val
,这也可以重新分配。
colorsArray.context = someOtherContext
在主构造函数中声明的属性在这里的文档中有介绍。
在第一种情况下,构造函数需要一个context
参数,并且什么也不做。
在第二种情况下,代码示例提供了:
class ColorsArray(var context: Context) { }
是一个捷径:
class ColorsArray(context: Context) { var context: Context = context }