カテゴリ: Swift 更新日: 2025/12/06

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の開発がとても楽しくなります。

Swiftを基礎から実践レベルまで学びたい人や、 iOSアプリ開発を本格的に始めたい人には、 定番の入門+実践書がこちらです。

Swift実践入門をAmazonで見る

※ Amazon広告リンク

まとめ

まとめ
まとめ

Swiftのクラスについて学んできた内容を振り返ると、「クラス」という考え方が、現実世界のものごとをプログラムの中で表現するためのとても重要な仕組みであることがよくわかります。クラスは「設計図」、インスタンスは「実体」という関係を押さえることで、オブジェクト指向の基本が自然と理解できるようになります。また、クラスの中に含まれるプロパティは「情報」、メソッドは「動作」という役割を持ち、これらをひとつのまとまりとして扱えるのが大きな特徴です。Swiftではクラスを活用することで、より現実世界に近い構造を表現したり、複雑な処理をわかりやすく整理することができます。

さらに、クラスを学ぶ上で欠かせないのが「イニシャライザ」と「参照型」というふたつの重要なポイントです。イニシャライザ(init)はインスタンスを作るときに初期値を設定するための特別な関数で、Swiftのクラス設計では頻繁に登場します。これにより、インスタンス生成時に必要な情報を受け渡すことができ、利便性が大きく向上します。そして、クラスが「参照型」であるという性質は、複数の変数が同じインスタンスを共有する動きを理解するうえで非常に重要です。この性質を理解していないと意図しない値の書き換えが起きるため、オブジェクト指向の挙動を正しく把握する基礎となります。

一方で、Swiftにはクラスとよく似た「構造体(Struct)」もあり、値型として別々にコピーされるという明確な違いがあります。クラスと構造体の特性を使い分けることで、アプリの規模や用途に合わせて柔軟なデータ設計が可能になります。小さなデータのまとまりであれば値型の構造体、大きくて複雑な機能や状態を持つものは参照型のクラス、といった選び方ができるため、開発全体の設計の質も向上します。

ここまでの内容を踏まえて、クラスをしっかり使いこなすためのサンプルプログラムをまとめとして掲載します。基本的なクラス、プロパティ、メソッド、イニシャライザの流れをひとつにまとめてあるので、復習として活用してください。

まとめとしてのサンプルプログラム


class Animal {
    var name: String
    var age: Int

    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }

    func introduce() {
        print("わたしの名前は\(name)で、年齢は\(age)さいです。")
    }
}

let cat = Animal(name: "ミケ", age: 3)
cat.introduce()

class Student {
    var studentName: String = "名無し"
    var grade: Int = 1

    func showStatus() {
        print("\(studentName)さんは現在\(grade)年生です。")
    }
}

let s = Student()
s.studentName = "たなか"
s.grade = 2
s.showStatus()

このコードには、初期化を伴うクラスと、初期化なしでプロパティに値を設定するクラスの両方をまとめています。クラスが持つ構造や書き方の違い、そしてデータと動作をひとつにまとめる利点が自然に理解できる構成になっています。とくに、initで値を受け取るパターンと、インスタンス生成後に値を変更するパターンの両方を学ぶことで、Swiftのクラスに対する理解がより深まります。また、参照型であるクラスを扱う際は、どの変数がどのインスタンスを指しているかを意識することが重要です。同じインスタンスを共有している場合、一方の値を変更すると他方にも影響が及ぶという特性をしっかり覚えておきましょう。

Swiftのクラスを学ぶことは、アプリ開発の基礎を固めるうえで欠かせないステップです。データを管理しながら整った構造を作れるようになると、コードの見通しが良くなり、保守性の高いプログラムを作ることができます。今回の内容を何度も読み返しつつ、実際に手を動かしてクラスを作ってみることで、自然とオブジェクト指向への理解が深まり、Swiftの扱いにも自信がついていきます。

先生と生徒の振り返り会話

生徒:「クラスって難しそうに感じてたけど、設計図って考えたらすごく理解しやすくなりました!」

先生:「その感覚はとても大切ですよ。クラスは“まとまり”を作るための道具なので、現実のものをイメージすると覚えやすくなります。」

生徒:「プロパティが情報で、メソッドが動作という説明もすごく納得しました。」

先生:「その理解ができれば、もうオブジェクト指向の基礎はばっちりです。クラスの初期化や参照型の特徴もぜひ覚えておいてくださいね。」

生徒:「構造体との違いも知れてよかったです。これからどちらを使うか考えながら書ける気がします!」

先生:「使い分けができるようになると、Swiftの設計力がぐっと上がりますよ。いろんなクラスを自分で作って試してみましょう。」

生徒:「さっそくアプリの中で使ってみます!」

先生:「大歓迎です。その調子でどんどん力をつけていきましょうね。」

関連セミナーのご案内

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。

Windowsで実現する開発環境

【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。

【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。

この60分で得られる3つの理解

1. WindowsでのSwift実行環境の作り方

OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。

2. Swiftの基本構造(変数・型・定数)

iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。

3. アプリエンジニアとしてのロードマップ

将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。

※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。

セミナー画像

Windowsで始めるiPhoneアプリ開発入門

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Go言語
Go言語プログラムの実行方法まとめ!VSCode・ターミナルでの実行手順を解説
New3
Swift
Swift意味とは?プログラミング言語・金融・鳥の違いを徹底解説
New4
Swift
Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.6
Java&Spring記事人気No6
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.7
Java&Spring記事人気No7
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.8
Java&Spring記事人気No8
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説