Kotlinのクラスの基本!クラス定義とコンストラクタの書き方を解説
生徒
「Kotlinで『クラス』っていう言葉を見たんですが、クラスって何なんですか?」
先生
「クラスとは、簡単に言えば『設計図』のようなものです。たとえば、人間というクラスを作れば、その設計図から『田中さん』や『佐藤さん』といった実体(インスタンス)を作ることができます。」
生徒
「なるほど、クラスは実体を作るためのもとになるんですね。どうやって書くんですか?」
先生
「それでは、Kotlinでのクラス定義と、コンストラクタの使い方について、わかりやすく説明していきましょう。」
1. クラスとは何か?初心者にもわかるクラスの基本
Kotlinにおけるクラス(class)とは、オブジェクト(モノ)を作るための設計図です。たとえば、ペットの情報をまとめるときに「Pet」というクラスを作ることで、複数のペットの情報を整理できます。
現実の世界で考えると、「犬」というクラスは、「名前」「年齢」「種類」といった共通の情報を持っています。これをプログラムで表すのがクラスです。
2. Kotlinでの基本的なクラスの定義方法
Kotlinでは、クラスを定義するにはclassというキーワードを使います。以下のようにシンプルに書けます。
class Pet {
var name: String = ""
var age: Int = 0
}
この例では、Petというクラスを作り、その中にname(名前)とage(年齢)という変数を定義しています。
このnameやageは、そのクラスから作られたオブジェクト(インスタンス)ごとに値を持つことができます。
3. コンストラクタとは?オブジェクトの初期設定をする仕組み
コンストラクタとは、クラスからオブジェクトを作るときに、初期値を設定するための仕組みです。
Kotlinでは、クラス名の横にカッコ () をつけて、その中に初期化するための変数を記述します。
class Pet(val name: String, val age: Int)
このように書くと、nameとageを持ったPetクラスができ、次のように使うことができます。
fun main() {
val dog = Pet("ポチ", 3)
println("名前: ${dog.name}")
println("年齢: ${dog.age}")
}
名前: ポチ
年齢: 3
このように、クラスのコンストラクタを使えば、オブジェクトを作ると同時に情報を入れることができます。
4. プロパティ(変数)をクラスの外から使う
コンストラクタでvalやvarを使って定義したプロパティ(変数)は、クラスの外でもアクセスできます。
valは「読み取り専用」で、後から変更できません。varは「変更可能」です。
class Pet(var name: String, var age: Int)
fun main() {
val cat = Pet("ミケ", 2)
println(cat.name) // ミケ
cat.age = 3 // 年齢を変更
println(cat.age) // 3
}
ミケ
3
このように、varで定義したものはあとから書き換え可能です。
5. クラスから複数のインスタンスを作る
同じクラスから、複数のオブジェクト(インスタンス)を作ることができます。たとえば、複数のペットを作ることができます。
val dog = Pet("ポチ", 3)
val cat = Pet("ミケ", 2)
これにより、dogとcatという2つの異なるインスタンスができ、それぞれに違う情報が入ります。
6. クラスとインスタンスの関係を身近なもので例えると?
クラスとインスタンスの関係は、「クッキーの型」と「焼かれたクッキー」のようなものです。
クッキーの型(クラス)を使って、たくさんのクッキー(インスタンス)を作ることができ、どれも形は同じだけど中身は少しずつ違うことがあります。
このように考えると、クラスとインスタンスの関係がとても分かりやすくなります。