init (Kotlin) |
辞書:電算用語の基礎知識 プログラミング仕様編 (PTPROGS) |
読み:いにっと |
外語:init |
品詞:名詞 |
|
概要 |
initはKotlinのソフトキーワードとして定義されている。これは適用可能な範囲が決まっている予約語である。
classの直下に記述した場合、そのclassのプライマリーコンストラクターに対応する初期化ブロックを定義するために使われるが、それ以外の箇所では変数に使うことも可能。
特徴 |
用途 |
initは初期化ブロックを実装するためのキーワードである。これはclassがインスタンス化された際に必ず実行されるもので、一種のコンストラクターであり、classの初期化に使われる。
引数は存在せず、init { ... } の書式を取る。一つのclassに複数のinitを書くことはできるが、普通は一つだけ定義し、必要であればセカンダリーコンストラクターとしてconstructorを使用する。
制限 |
初期化ブロックinitが実行されるタイミングは、それよりプログラムとして前に書かれた変数、プロパティしか初期化されていない。
initより後に記述されている変数、プロパティは、(lateinitが宣言されているものは除き)参照は可能だが内容は未定義である。
class Test { init { printHoge() } val testvar = true init { printHoge() } fun printHoge() { System.out.println(testvar) } }
この実行結果は、次のようになる。
I/System.out: false
I/System.out: true
この結果は、多くの場合期待したものではないだろう。initは、プロパティ宣言の下に記述するのが無難である。
initは当然ながらActivity#onCreate()などより前に実行されるので、getPackageName()などの仮想メソッドは実行できない。
リンク |
通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022) Search System : Copyright © Mirai corporation Dictionary : Copyright © WDIC Creators club |