[解決済み] kotlinのinitブロックとコンストラクタの違いは何ですか?
2023-05-17 22:10:05
質問
Kotlinの勉強を始めました。の違いを知りたいです。
init
ブロックと
constructor
.
この違いは何なのか、またこれをどのように利用すれば改善できるのか?
class Person constructor(var name: String, var age: Int) {
var profession: String = "test"
init {
println("Test")
}
}
どのように解決するのですか?
この init ブロックは一次コンストラクタの直後に実行されます。イニシャライザブロックは事実上一次コンストラクタの一部となります。また コンストラクタ は 2 次コンストラクタです。1 次コンストラクタへの委譲は 2 次コンストラクタの最初のステートメントとして行われるため、すべてのイニシャライザブロックのコードは 2 次コンストラクタ本体の前に実行されます。
例
class Sample(private var s : String) {
constructor(t: String, u: String) : this(t) {
this.s += u
}
init {
s += "B"
}
}
でSampleクラスを初期化したと思ってください。
Sample("T","U")
変数に文字列の応答が得られます。
s
として
"TBU"
.
値
"T"
に割り当てられます。
s
の一次コンストラクタから
サンプル
を追加し、initブロックの実行を開始するとすぐに
"B"
を追加します。initブロックの後、2次コンストラクタ・ブロックが実行され、その変数に
s
になります。
"TBU"
.
関連
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] C#のオートプロパティに初期値を与える最良の方法は何ですか?
-
[解決済み] C#でベースコンストラクタを呼び出す
-
[解決済み] 型名の後の括弧は、newで違いがあるのでしょうか?
-
[解決済み] ベースクラスのコンストラクタを呼び出す際のルールは?
-
[解決済み] React / React Nativeでコンストラクタを使用する場合とgetInitialStateを使用する場合の違いとは何ですか?
-
[解決済み] by lazy" と "lateinit" を使ったプロパティの初期化
-
[解決済み] Kotlinのvarとvalの違いは何ですか?
-
[解決済み】KotlinでJavaの静的メソッドに相当するものは何ですか?
-
[解決済み】Kotlin Androidでデータクラスに空のコンストラクタを作成する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Kotlinで多くの例外を同時にキャッチするには?
-
[解決済み] KotlinでNullチェックを行う最良の方法とは?
-
[解決済み] Kotlinのゲッターとセッター
-
[解決済み] KotlinのIterableとSequenceは全く同じに見える。なぜ2つの型が必要なのでしょうか?
-
[解決済み] kotlin.jvm.KotlinReflectionNotSupportedError.KotlinReflectionNotSupportedError.KotlinReflectionNotSupportedError: ランタイムにKotlin Reflectionの実装が見つかりませんでした。kotlin-reflect.jar があることを確認してください。
-
[解決済み] KotlinのコルーチンはRxKotlinよりどう優れているか?
-
[解決済み] Kotlinにおけるスレッドとコルーチンの違い
-
[解決済み] Kotlin - ボイド vs. ユニット vs. ナッシング
-
[解決済み] 実験的な "Kotlinコルーチン "は実運用に使えるか?
-
[解決済み] コルーチン:runBlockingとcoroutineScopeの比較