カテゴリ: Swift 更新日: 2026/04/01

Swiftのクラス・構造体・プロトコルを総復習!初心者でもわかるオブジェクト指向の基本

Swift クラス・構造体・プロトコルの総復習
Swift クラス・構造体・プロトコルの総復習

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

生徒

「Swiftでクラスとか構造体とかプロトコルっていろいろ出てきて、正直よくわかりません…」

先生

「それは多くの人がつまずくポイントですね。でも心配いりません!この3つの違いと使い方を、初心者にもわかりやすく整理してみましょう。」

生徒

「お願いします!ちゃんと整理して覚えたいです!」

先生

「では、Swiftのクラス・構造体・プロトコルを一緒に総復習していきましょう!」

1. Swiftのクラスとは?

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

Swiftのクラス(class)は、オブジェクト指向プログラミングの基本となる考え方で、「人」や「車」など、現実のものをプログラムとして表現するための設計図です。

クラスにはプロパティ(情報)メソッド(動き)を持たせることができます。


class Dog {
    var name: String
    init(name: String) {
        self.name = name
    }
    func bark() {
        print("\(name) がワンワンと鳴きます")
    }
}

let dog = Dog(name: "ポチ")
dog.bark()

クラスは参照型(Reference Type)で、コピーしても中身は共有されます。メモリの効率が良い一方で、注意も必要です。

2. Swiftの構造体とは?

2. Swiftの構造体とは?
2. Swiftの構造体とは?

Swiftの構造体(struct)も、クラスと同じようにプロパティやメソッドを持つことができますが、大きな違いは値型(Value Type)であることです。

構造体はコピーするとまったく別のデータとして扱われます。


struct Point {
    var x: Int
    var y: Int
    func description() {
        print("座標は (\(x), \(y)) です")
    }
}

var p1 = Point(x: 3, y: 4)
var p2 = p1
p2.x = 10

p1.description()
p2.description()

この例では、p1p2は別々のデータになっています。安全で予測しやすいのが構造体のメリットです。

3. クラスと構造体の使い分け

3. クラスと構造体の使い分け
3. クラスと構造体の使い分け

クラスと構造体はどちらも似たようなことができますが、次のように使い分けると便利です。

  • クラス:複数の場所で同じデータを共有したいとき(例:ユーザーの情報)
  • 構造体:コピーしても良い小さなデータ(例:位置情報や色など)

Swiftでは、Appleもできるだけ構造体を使うことを推奨しています。理由は安全性とパフォーマンスのためです。

4. プロトコルとは?

4. プロトコルとは?
4. プロトコルとは?

Swiftのプロトコル(protocol)は、「これを実装してくださいね」というルールを定義する仕組みです。

たとえば、「音を鳴らす」機能を持っているなら、SoundPlayableというプロトコルを作って、必要なメソッドを決めておくことができます。


protocol SoundPlayable {
    func playSound()
}

struct Bell: SoundPlayable {
    func playSound() {
        print("チーン♪")
    }
}

let bell = Bell()
bell.playSound()

このように、プロトコルは「約束事」で、どんな型でもそのルールを守っていれば扱えるというメリットがあります。

5. クラス・構造体とプロトコルの関係

5. クラス・構造体とプロトコルの関係
5. クラス・構造体とプロトコルの関係

クラスや構造体は、プロトコルに準拠(じゅんきょ)することで、そのプロトコルに決められたメソッドやプロパティを必ず実装することができます。

これにより、複数の型に共通の機能を持たせることができるのです。

たとえば、クラスでも構造体でも、同じプロトコルに準拠していれば、同じように扱うことができます。

6. 初心者向けの覚え方とまとめ方

6. 初心者向けの覚え方とまとめ方
6. 初心者向けの覚え方とまとめ方

Swiftのクラス・構造体・プロトコルを覚えるときは、次のようなイメージで整理すると理解しやすいです。

  • クラス:人や動物など、共通の特徴や行動を持つ存在。参照型。
  • 構造体:数字や座標などの小さな情報のかたまり。値型。
  • プロトコル:やるべきことを決めたルール。複数の型で共通化できる。

例えるなら、クラスは「会社員」、構造体は「名刺」、プロトコルは「会社の就業規則」のようなものです。

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

Swift実践入門をAmazonで見る

※ Amazon広告リンク

7. 実際に使うときのポイント

7. 実際に使うときのポイント
7. 実際に使うときのポイント

実際にアプリ開発をするときには、次のようなことを意識して使い分けましょう。

  • データが変化しても中身を共有したいとき → クラス
  • コピーしてもOKで安全に扱いたいとき → 構造体
  • 共通の機能や役割を定めたいとき → プロトコル

それぞれの特徴を理解して使いこなせるようになると、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
Kotlin
Kotlinマルチモジュール設計のメリットと導入例を徹底解説!初心者向けガイド
New2
Go言語
Go言語の関数のテストを書く基本!単体テストのやり方を解説
New3
Swift
Swiftのクラス・構造体・プロトコルを総復習!初心者でもわかるオブジェクト指向の基本
New4
Kotlin
Kotlinでの変数名の付け方とは?わかりやすくエラーの起きにくい命名規則を紹介
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.2
Java&Spring記事人気No2
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.3
Java&Spring記事人気No3
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.5
Java&Spring記事人気No5
Kotlin
KotlinのRoomで複雑なクエリを使いこなす!初心者でもわかる応用テクニック
No.6
Java&Spring記事人気No6
Go言語
Go言語の構造体にメソッドを定義する方法をやさしく解説
No.7
Java&Spring記事人気No7
Kotlin
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!
No.8
Java&Spring記事人気No8
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方