ハジカラ 〜はじめからでも、プログラミング勉強〜

入門向けに、IT関連(javaやKotlin)をコツコツ書いたり検証したりします。

【Kotlin入門】クラスの定義〜initとconstructor

calendar

reload

【Kotlin入門】クラスの定義〜initとconstructor

こんにちは😀

今回から、クラスの応用をみていきます。
そして今回は、init関数とconstructor関数を使ってみます。

まずは、init関数を書いてみます。
initは、初期化で使われる関数で、オブジェクトを作った時に定義されます。
例えばログの出力などで使用します。

main関数で、3行目に引数を渡して定義します。

実行します。
上記の3行目でオブジェクトが作成された際に、initの処理が実行されているのがわかります。
init1

そして、constructor関数ですが、以前プライマリコンストラクタとして勉強しました。
今回は、セカンダリコンストラクタを使ってみます。
initは1つ定義できて必ず実行されますが、constructorは複数指定できて実行する処理を分けることができます。
プライマリコンストラクタは実行必須ですが、セカンダリコンストラクタはプライマリ以外のコンストラクタを表します。

以下の処理は、セカンダリコンストラクタを1つ持つクラスです。
7行目がセカンダリコンストラクタになり、引数にvalが付きません。
渡された値がプライマリコンストラクタによって、新しいオブジェクトを作ります。
「this(number,shina)」がそのことを表しています。
変数settingは、別の関数から値を渡しますが、渡されない場合は、プライマリコンストラクタのみが実行されます。

main関数では、5〜7行目でKeihinクラスのセカンダリコンストラクタを実行しています。

実行します。
initはオブジェクトが作成された時点で実行され、その後は3回セカンダリコンストラクタが呼ばれています。
コンストラクタ1

initはわかりやすいですが、コンストラクタは慣れがいりますね💦
プライマリとセカンダリと理解した上で使い分けたいものですね。

今回はここまで🤚

では、また次回。

 

【Kotlin入門一覧はこちら】