Kotlinにおける「オブジェクト(object)」は、オブジェクト指向プログラミング(OOP)の中核となる概念の一つであり、状態(プロパティ)と振る舞い(メソッド)を一つにまとめた実体です。Kotlinでは「objectキーワード」を使って、さまざまな種類のオブジェクトを定義できます。以下に詳しく説明します。
1. 基本的な「オブジェクト」とは
オブジェクトとは、クラスから生成されたインスタンスのことを指します。例えば、Carクラスから生成されたmyCarが「オブジェクト」です。
この例では、myCarはCarクラスのオブジェクトです。
2. objectキーワードの使い方
objectキーワードの使い方Kotlinでは特別に、objectキーワードを使って単一のインスタンス(シングルトン)を直接定義できます。
2.1. オブジェクト宣言(シングルトン)
-
Loggerは1つしか存在しないシングルトンオブジェクトです。 -
Javaでの
staticに近い役割を果たします。
2.2. 匿名オブジェクト(Anonymous Object)
-
一時的なオブジェクトを作成する場合に使います。
-
型を持たないオブジェクトをその場で定義できます。
2.3. オブジェクト式(Object Expression)
-
匿名クラスのインスタンスを生成して即時に使用する方法です。
-
Javaの無名クラス(anonymous class)に相当します。
3. companion object(コンパニオンオブジェクト)
companion object(コンパニオンオブジェクト)-
Kotlinでは
staticメンバは存在しませんが、クラス内に1つだけ定義できるオブジェクトとしてcompanion objectがあります。
-
MathUtils.add(3, 5)のようにクラス名を通じてアクセスできます。 -
Java側からも
staticとして呼び出し可能です。
まとめ
| 用途 | 説明 |
|---|---|
| 通常のオブジェクト | クラスのインスタンスとして生成される |
object宣言 |
シングルトンオブジェクトを作成 |
| 匿名オブジェクト | 型なしで一時的に使いたい場合 |
object式 |
インターフェースを即時実装 |
companion object |
クラスに紐づいた静的メンバを定義 |
Kotlinではオブジェクトの取り扱いが柔軟かつ明確であり、Javaに比べてより簡潔にシングルトンや匿名オブジェクトを扱うことができます。
生成日:2025/05/04