カテゴリ: Swift 更新日: 2025/10/20

Swiftのクラスとは?初心者でもわかるオブジェクト指向の基本をやさしく解説

Swift クラスとは?オブジェクト指向の基礎
Swift クラスとは?オブジェクト指向の基礎

先生と生徒の会話形式で理解しよう

生徒

「Swiftの“クラス”ってなんですか?オブジェクト指向とか難しそうで…」

先生

「たしかに最初は難しく聞こえるけど、大丈夫。クラスは、モノの設計図のようなものと考えるとわかりやすいよ。」

生徒

「設計図?どういうことですか?」

先生

「それじゃあ、Swiftのクラスとオブジェクト指向について、基礎から見ていこう!」

1. Swiftのクラスとは?

1. Swiftのクラスとは?
1. Swiftのクラスとは?

Swift(スウィフト)で「クラス」とは、現実世界のモノや概念をプログラムの中で再現するための「設計図(せっけいず)」のようなものです。

たとえば「車」を作りたいとき、色やスピード、動かし方などを一つのまとまりとして定義できます。この「車の設計図」がクラスになります。

2. クラスとインスタンスの関係

2. クラスとインスタンスの関係
2. クラスとインスタンスの関係

クラスをもとにして作られる実体(じったい)のことを「インスタンス」と呼びます。

たとえば、「赤い車」「青い車」は、それぞれクラスから作られたインスタンス(実際の車)です。設計図は1つでも、作れる車は何台でもOKですよね。それと同じです。

3. 実際にSwiftでクラスを使ってみよう

3. 実際にSwiftでクラスを使ってみよう
3. 実際にSwiftでクラスを使ってみよう

Swiftでクラスを定義するには、classキーワードを使います。そして、そこからインスタンスを作って使います。


class Car {
    var color: String = "白"
    var speed: Int = 0

    func drive() {
        print("車が走り出しました。スピード: \(speed)km/h")
    }
}

// インスタンスを作る
let myCar = Car()
myCar.color = "赤"
myCar.speed = 60
myCar.drive()

このコードでは、Carというクラスを作り、それをもとにmyCarというインスタンスを作成しています。

色を赤に、スピードを60に設定して、drive()メソッドを実行しています。

出力結果は以下のようになります。


車が走り出しました。スピード: 60km/h

4. プロパティとメソッドの意味

4. プロパティとメソッドの意味
4. プロパティとメソッドの意味

クラスの中には、「プロパティ」と「メソッド」という2つの要素があります。

  • プロパティ:クラスが持つ「情報」のことです。上の例ではcolorspeedがそれにあたります。
  • メソッド:クラスができる「動作」のことです。上のdrive()がその例です。

5. 初期化する方法:イニシャライザ(initializer)

5. 初期化する方法:イニシャライザ(initializer)
5. 初期化する方法:イニシャライザ(initializer)

Swiftのクラスでは、インスタンスを作るときに値を指定したい場合があります。そのときに使うのがinit(イニット)という特別な関数です。


class Car {
    var color: String
    var speed: Int

    init(color: String, speed: Int) {
        self.color = color
        self.speed = speed
    }

    func drive() {
        print("色は\(color)の車が\(speed)km/hで走っています。")
    }
}

let blueCar = Car(color: "青", speed: 80)
blueCar.drive()

色は青の車が80km/hで走っています。

このようにinitを使うことで、インスタンスを作るときに必要な情報を渡せます。

6. クラスの便利なポイント:再利用しやすい

6. クラスの便利なポイント:再利用しやすい
6. クラスの便利なポイント:再利用しやすい

クラスを使うと、同じような処理を何回も書かずに済みます。設計図をもとに、いろいろなパターンのインスタンスを簡単に作れるので、プログラムの整理もしやすくなります。

また、後で新しい機能を追加したいときも、クラスにまとめてあると管理がラクです。

7. 構造体(Struct)との違い

7. 構造体(Struct)との違い
7. 構造体(Struct)との違い

Swiftにはクラスと似たものに構造体(Struct)もあります。

大きな違いは、「インスタンスをコピーしたときの動き」です。

  • クラスは参照型:同じインスタンスを共有する
  • 構造体は値型:コピーして別のものとして扱う

例えば、クラスで作ったインスタンスを別の変数に代入すると、元のインスタンスと同じものを指します。


class Dog {
    var name: String = "ポチ"
}

let dog1 = Dog()
let dog2 = dog1
dog2.name = "タロウ"

print(dog1.name) // タロウ と表示される

これは、dog1とdog2が同じ「犬」を指しているからです。

8. クラスのキーワードと文法のおさらい

8. クラスのキーワードと文法のおさらい
8. クラスのキーワードと文法のおさらい

ここまでで登場した、Swiftのクラスに関連するキーワードをおさらいしましょう。

  • class:クラスを定義する
  • var:プロパティ(変数)を定義する
  • func:メソッド(関数)を定義する
  • init:イニシャライザ(初期化のための特別な関数)
  • self:自分自身のインスタンスを指すキーワード

これらを組み合わせて、オリジナルのクラスを作っていけるようになると、Swiftの開発がとても楽しくなります。

カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!