Swift

【Swift入門】クラスとは?概念や使い方を徹底解説!

こんにちは、テルプロです!

「クラス(class)の使い方がわからない」とお悩みではないでしょうか?

テルプロ

本記事ではそんな悩みを解決していきます!

Swiftの基礎文法一覧
  1. データ型(type)
  2. 変数(var)
  3. 定数(let)
  4. 配列(array)
  5. 関数(function)
  6. 引数(input)
  7. 戻り値(output)
  8. if文(2〜3つの条件式)
  9. switch文(4つ以上の条件式)
  10. クラス(class)

クラスとは

  1. 設計図のようなもの
  2. インスタンス化することで、情報を加えたり変更したりできる

クラスを理解する上で、押さえておくべきポイントは上記の2点のみです。

では、詳しく解説していきます!

基本的な使い方

簡単解説

今回は「さまざまな色の服を作りたい場合」を例に挙げます。

このような場合に「2」を服の完成だとし、クラスを使わないと「0→1→2」を何工程も繰り返す必要があります。

しかし、クラスを使うと「1=インスタンス」(クローン) を作ることができるため、後はそのインスタンスをもとに色を加えるだけになります。

つまり、クラスを使えば服を作る過程を「0→1→2」から「1→2」に短縮することができるという訳です。

クラスは、今回の例のように基本となる設計図を作成したい際に用います。

では、実際の使用例を用いて解説していきます!

使用例

Class クラス名{
 // コンストラスタ化  - 再利用したいプロパティやメソッドを指定
 // プロパティ - 変数や定数の指定
 // メソッド - 関数の指定
}
//クラス(設計図)
class Twitter {
   //プロパティ
    var userId: String!
    var date: Int!
    var content: String!
  //プロパティ
  //表示したい内容の型
    func tweet() {
        print("UserID:\(userId!)")
        print("日付:\(date!)")
        print("投稿内容:\(content!)")
    }
  //表示したい内容の型
}
//クラス(設計図)

//インスタンス化(クローンの作成)
let tweetData1 = Twitter()
//それぞれにデータを付与していく
tweetData1.userId = "@terupro.net"
tweetData1.date = 1031
tweetData1.content = "ハッピーハロウィン!"
//ツイートを出力
tweetData1.tweet()

//インスタンス化(クローンの作成)
let tweetData2 = Twitter()
//それぞれにデータを付与していく
tweetData2.userId = "@terupro.com"
tweetData2.date = 1225
tweetData2.content = "メリークリスマス!"
//ツイートを出力
tweetData2.tweet()

/*出力結果
UserID:@terupro.net
日付:1031
投稿内容:ハッピーハロウィン!

UserID:@terupro.com
日付:1225
投稿内容:メリークリスマス!

*/

簡単解説

上記は、Twitterのツイートを例にしたものです。

ツイートで表示される「UserID」「日付」「投稿内容」を設計図の中身としています。この、クラスの中に入る変数や定数をプロパティと呼びます。そして、その下にツイートの型を作成しています。

そして、クラスをインスタンス化してクローンを作成し、クローンにデータを付与して、最後にツイートを出力するためのコードを書いています。

このようにクラスとインスタンスを用いることで、一部だけを変更したいプログラムを効率的に作成することができます。

以上が、クラスの基本的な使い方です。

まとめ

今回は【クラス】の概念や使い方を徹底解説しました。

解説の通りクラスは、基本となる設計図を作成したいときに用いるものとなります。Swiftの文法をしっかりと押さえて、開発の幅を広げていきましょう。

▼以下では、私の実体験に基づいて「Swiftの効率的な勉強法」の具体的な手順を詳しく解説しています。ぜひ参考にしてみてください!

最後までご覧いただきありがとうございました。ではまた!

参考文献
ABOUT ME
テルプロ
東京都在住のアプリエンジニア。大学では、ソフトウェア開発の研究に取り組む。長期のエンジニアインターンシップを経て、実務スキルを磨き、現在はフリーランスエンジニアとしても活動中。メインはモバイルアプリ開発。IT関連の記事監修も行い、技術の共有と普及に励んでいます。 監修実績(レバテックフリーランス
Flutter関連の書籍を出版しました!