Kotlinのクラス
概要
Kotlinはオブジェクト指向の言語であり、継承などを使用してコードを書いていく。
実装
基本
Kotlinでクラスを使用する場合はclassキーワード」を使用する。
class Person {
...
}プロパティ
プロパティ(インスタンス変数)を実装するときにはクラス内スコープでそのまま変数宣言をすることである。
以下のコードはsetterとgetterが標準で搭載されていることに注意する。
class Person() {
val name = 0
val age = 0
}呼び出す場合は
val person = Person()
person.name = "rerurate"
person.age = 20などと記述する。
プライベートにする場合はprivateを使用する。
publicを使用すると明示的にprivateでなくなる。
class Person (){
private val name = 0
public val age = 0
}コンストラクタ
Kotlinのコンストラクタについて
Kotlinのコンストラクタについて
プライマリコンストラクタ
プライマリコンストラクタとは、クラス定義の際にクラスの本文でコンストラクタを書かなくてもよい記法である。
class SampleClass(val name: String, val age: Int){ }セカンダリコンストラクタ
セカンダリコンストラクタとは、クラスの本文の中に
constructorキーワードを使用してコンストラクタを定義する記法である。クラスフィールドへのアクセスには、
thisを使用する。元記事へのリンク class Sample{ var name : String var age : Int constructor(name: Int, age: Int){ this.name = name; this.age = age; } }
継承
クラスの継承については以下で解説されているので特段説明はしない。
ここではKotlinでの記述方法とその動作について説明する。
スーパークラスを作成する。
open class Character(){
open fun メソッド(){
...
}
}ここで継承を行うクラスにはopenキーワードをつける必要がある。
さらにオーバーライドを行う関数にもopenをつける必要がある。
サブクラスはこのように記述する。
class Mario : Character(){
...
}:スーパークラスで継承することができる。
ちなみにKotlinではデフォルトで継承可能であるopenの反対、継承不可を示すfinalがついている。
finalを明示的に使用することもできる。
プライマリコンストラクタ
多言語でいうsuperを使用するコードを以下に示す。
open class Animal(val color: String){
open fun 鳴き声(){
...
}
}
class Bird(color: String) : Animal(color)オーバーライド
サブクラスにはスーパークラスの動作を書き換えるoverrideキーワードが存在する。
class Bird(color: String) : Animal(color){
override fun 鳴き声(){
...
}
}