このタイプのコンストラクタではどのような違いがありますか?2つのコンストラクタの違いは何ですか?
class ColorsArray(context: Context) {}
と
class ColorsArray(var context: Context){}
このタイプのコンストラクタではどのような違いがありますか?2つのコンストラクタの違いは何ですか?
class ColorsArray(context: Context) {}
と
class ColorsArray(var context: Context){}
第二のクラスはContext
を取るコンストラクタを宣言するだけでなく、それがコンストラクタに渡された値を保存しcontext
という名前のプロパティを持っています。あなたはそのようにように、これをアクセスすることができます。
val colorsArray = ColorsArray(context)
println(colorsArray.context)
あなたはこれも再割り当てすることができ、var
なくval
としてそれを宣言したので。主なコンストラクタで宣言さ
colorsArray.context = someOtherContext
プロパティはドキュメントhereで覆われています。
最初のケースでは、コンストラクタはcontext
パラメータをとり、何もしません。提供される第2のケースで
コード例:
class ColorsArray(var context: Context) { }
でのショートカットである:
class ColorsArray(context: Context) {
var context: Context = context
}