【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;  
  }  
}  

まだシングルトンの理解は足りないので、追い追い学習していきます。

参考

munchkins-diary.hatenablog.com

android.benigumo.com