Kotlinのクラス

概要

Kotlinはオブジェクト指向の言語であり、継承などを使用してコードを書いていく。

実装

基本

Kotlinでクラスを使用する場合はclassキーワード」を使用する。

class Person {
 ...
}

プロパティ

プロパティ(インスタンス変数)を実装するときにはクラス内スコープでそのまま変数宣言をすることである。
以下のコードはsettergetterが標準で搭載されていることに注意する。

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 鳴き声(){
		...
	}
}