違いは何ですか:
class Pitch(var width: Int = 3, var height: Int = 5) {
constructor(capacity: Int): this()
}
と
class Pitch(var width: Int = 3, var height: Int = 5, capacity: Int)
コンストラクターにはどのような利点がありますか?
違いは何ですか:
class Pitch(var width: Int = 3, var height: Int = 5) {
constructor(capacity: Int): this()
}
と
class Pitch(var width: Int = 3, var height: Int = 5, capacity: Int)
コンストラクターにはどのような利点がありますか?
クラスを次のように定義すると、次のようになります。
class Pitch (var width: Int = 3, var height: Int = 5) {
constructor(capacity: Int): this() {}
}
Pitch
パラメーターなしでコンストラクターを使用してインスタンスを作成できます。つまり、次のようになります。
val p = Pitch()
// also you can invoke constructors like this
val p1 = Pitch(30) // invoked secondary constructor
val p2 = Pitch(30, 20) // invoked primary constructor
クラスを次のように定義すると、次のようになります。
class Pitch (var width: Int = 3, var height: Int = 5, capacity: Int) {
}
デフォルト値を持つものを除いて、すべてのパラメータが必要です。したがって、この場合、空のパラメーターでコンストラクターを使用することはできません。少なくとも 1 つのパラメーターを指定する必要がありますcapacity
。
val p = Pitch(capacity = 40)
したがって、最初のケースでは、パラメーターなしでコンストラクターを使用する利点があります。2 番目のケースで、コンストラクターを呼び出してパラメーターを渡したい場合は、コンストラクターcapacity
を使用するときに明示的に名前を付ける必要があります。