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
admin at 2017年07月03日 07:10:19