【Kotlin】companionについて。
はじめに
kotlin・Java初心者なのでコードリーディングをしていたら、わからないことがたくさんあります。本日はcompanionがわからなかったので調べて軽く備忘録用に。
※調べが足りない部分もあると思いますが、不備などがあれば教えていただければ助かります。
Companionとは?
Kollinには、Javaと異なりKotlinにはstaticメソッド(クラスメソッド)がないので代用として、companion
が用意されている。
class Foo{ companion object{ fun greeting(){ println("ohayou") } } }
こんな感じで、companion objectで表現することができる。
つまり
class Foo{ companion object{ fun greeting(){ println("ohayou") } } } fun main(args:Array<String>){ Foo.greeting() }
Foo.greeting
でアクセスできる
これは便利
ちなみに、staticメンバはJVM起動時に読み込まれる。
staticで調べていたら、「シングルトン」が出てきたのでそれも調べてみる。
シングルトン
引用
シングルトンとは、①class値にInstanceを持たせて、②コンストラクタをprivateにすることで、外部クラスからのnewを禁止し、唯一性を担保する方法。
class Singleton{ //①class値にInstanceを持たせる private static final Singleton INSTANCE = new Singleton(); //②コンストラクタをprivateにすることで、外部クラスからのnewを禁止 private Singleton() {} public static Singleton getInstance() { //唯一のインスタンスを返す return INSTANCE; } }
まだシングルトンの理解は足りないので、追い追い学習していきます。