Kotlinコンストラクタ研究
はじめに:
私はコンストラクタkotlinを知ったときに、いくつかのオンライン書籍疑問を言います。
私は正確に十分と完璧な、または私の認知エラーではありません、彼らが言っているかわかりません。
私は別の意見、お願いギャング批判(誰かが私の記事を見た場合、その後、頭を)言うために以下のものを持っています。
図1は、1つのプライマリコンストラクタを持ちます
私のビュー:あなただけ0サブコンストラクタ複数のプライマリコンストラクタを持つことができない
最初の主コンストラクタとみなす書き込まクリア-クラス本体(クラス体)のクラス(クラス・ヘッダ)の先頭としないで。
例えば、このようなAの場合、全く主工法、唯一の二次構成方法は存在しません。
//没有主构造方法,只有一个副构造方法
class Human1{
//在类体中写的副构造方法
constructor(name: String)
}
このコードのアイデアは警告のみ、推奨される主な施工方法の形式で記述されると言われていますが、コンパイルすることができます。これは、それを許可することはできませんkotlin主なコンストラクタとしてカウントされませんか?
別の状況があります:なしメイン工法、サブ工法の唯一の複数はありません。
class Human2 {
constructor(name: String) {
println(name)
}
constructor(age: Int) {
println(age)
}
}
このコードは、さらにアイデアに警告を与えるものではありません。
2.副コンストラクタは、プライマリコンストラクタを呼び出す必要があります
この問題は、前の質問に多少似ている
私の意見では:副コンストラクタは、プライマリコンストラクタを呼び出すことはできません。
例えば:
class Human3 {
constructor(name: String) {
println(name)
}
constructor(age: Int) {
println(age)
}
}
これは、プライマリコンストラクタDOを呼び出す必要がないので、何の主なコンストラクタがないためではないでしょうか?
次の例を見て:
class Human4(){
constructor(name: String) : this() {
println(name)
}
constructor(age: Int) : this() {
println(age)
}
}
あなたは、クラスのサブコンストラクタでメインコンストラクタを空にし、このリードを呼び出す必要があり、Human4にこのクラスを空の主な施工方法を追加し、見ることができます。
サブメインコンストラクタコンストラクタが存在しない場合に主なコンストラクタを呼び出すことはありません、この番組。(Aは??がらくたのようなビット)が、ときメインコンストラクタは、プライマリコンストラクタを呼び出す必要があります。
これらの結論は、私だけの浅い理解、歓迎の批判に基づいています。