AndroidStudioでKotlinを使用(2)

今回はKotlinにおける、クラスについて触れていきたいと思います

クラスの宣言

クラスは、classキーワードを使用して宣言します

class Any{
}

クラスの宣言は、クラス名やクラスヘッダ、{ }内のクラス本体で構成されます
下記のようにクラスに本体がない場合には、{ }を省略することもできます

Kotlinのクラスに学ぶ中で、プライマリコンストラクタやセカンダリコンストラクタ等、聞いたことがないような用語がでてきました
プライマリコンストラクタと言うのは、クラスヘッダの一部であり、クラス名に続いて書くことができます

class Any (name:String){
}

 

また、アノテーションやアクセス指定をする場合には、constructorを付けなければエラーとなります

class Any public constructor(name:String){
}

 

プライマリコンストラクタの中にはコードを書くことができないので、init内にてクラスの初期化などを行います

class Any (name:String){
    init {
        Log.d("init", "${name}で初期化しました")
    }
}

 

セカンダリコンストラクタは、クラス内でconstructorのキーワードを使って、複数宣言できます

class Any (name:String){
    val any_name = name
    init {
        println("${name}で初期化しました")
    }
    constructor(age:Int, name:String):this(name){
        Log.d("constructor", name)
    }
}

クラスの利用

先程宣言したクラスのインスタンスの生成をするには、関数と同様に呼び出します Kotlinにはnewキーワードがないために、こういった書き方になります

        //プライマリコンストラクタ
        val a = Any("a")
        //セカンダリコンストラクタ
        val b = Any(10, "b")

 

例えば、Anyクラスに以下のような関数があるとすれば、a.printやb.printで呼び出すことができます

    fun print(){
        println(any_name)
    }

終わりに

聞いたことがないような用語があったり、ところどころJavaの方が簡単に書けると思いましたが、慣れなどの問題もあると思いますので、これからもKotlinを使用して便利なところと、不便なところを見極めたいです

火曜日担当:poppy




アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム