LoginSignup
6
4

More than 5 years have passed since last update.

プライマリコンストラクタとinitブロック[Kotlin備忘録]

Posted at

Android開発でKotlinを書いていて「どうやって書くんだっけ」と思って調べたことの備忘録です。
Kotlinをちゃんと勉強しようと思ったのでリファレンスを読んで気になったことや、書いていて忘れていたところを中心に残していきたい。

プライマリコンストラクタ

Javaとは違い、Kotlinにはプライマリコンストラクタというものがあり、

java
public class Customer{
    private String name = "";

    public Customer(String name){
        this.name = name;
    }
     ....
}

これを

kotlin
class Customer(name: String){
    ....
}

こんな感じで書けます。(直書きしたので記述ミスとかあるかも)

初期化処理で色々やりたい

上記からわかるように、プライマリコンストラクタだけではコードを含めることができず、初期化処理がし足りない場合があります。諸々の初期化処理も行いたい場合はどうすれば良いのか。
結論から言うとinitを使えば大丈夫です。

kotlin
class Customer(name: String){
    init {
    // ここで初期化処理
    }
}

こんな感じでプライマリコンストラクタに書けない初期化処理をinitブロック内で行えます。

ちなみにプライマリコンストラクタではvalやvarの宣言やデフォルト値の設定などできることは意外とあり、プライマリコンストラクタを使用しないこともできます。

参考

クラスと継承 - Kotlin Programming Language
https://dogwood008.github.io/kotlin-web-site-ja/docs/reference/classes.html

Classes and Inheritance - Kotlin Programming Language
https://kotlinlang.org/docs/reference/classes.html

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4