Swiftのメソッド定義とインスタンス化の流れをやさしく解説!初心者向けオブジェクト指向入門
生徒
「Swiftでクラスの中に関数みたいなものを書いてるのを見たんですけど、あれって何ですか?」
先生
「それは“メソッド”と呼ばれるもので、クラスや構造体の中で使う関数のことだよ。Swiftではメソッドを定義して、インスタンスを作ってから使います。」
生徒
「インスタンスっていうのもよくわからなくて…」
先生
「大丈夫!順を追って丁寧に説明していくから、メソッドの定義とインスタンス化の流れを一緒に学んでいこう!」
1. Swiftのメソッドとは?
Swift(スウィフト)におけるメソッドとは、クラスや構造体の中で定義された関数のことです。
たとえば、「車を走らせる」「あいさつをする」といった具体的な動きを表すのがメソッドです。
クラスや構造体の中でfuncを使って定義します。
2. メソッドの定義方法と使い方
以下の例では、人を表すPersonクラスを作り、greetというメソッドを定義しています。
class Person {
var name: String
init(name: String) {
self.name = name
}
func greet() {
print("こんにちは、私は\(name)です。")
}
}
let user = Person(name: "太郎")
user.greet()
こんにちは、私は太郎です。
このように、greetメソッドを定義し、インスタンス(実体)を作ってからuser.greet()のように呼び出します。
3. インスタンス化とは?
インスタンス化とは、クラスや構造体をもとにして、実際のデータ(実体)を作ることです。
たとえば、Personという設計図(クラス)を使って、userという一人の人を作ることがインスタンス化です。
let user = Person(name: "太郎")というコードで、クラスからオブジェクト(インスタンス)を生成しています。
4. 引数つきのメソッドを作ってみよう
メソッドは、呼び出すときに値(引数)を渡すこともできます。たとえば、何回あいさつするかを引数で指定する例です。
class Greeter {
var name: String
init(name: String) {
self.name = name
}
func greet(times: Int) {
for _ in 1...times {
print("こんにちは、\(name)です。")
}
}
}
let greeter = Greeter(name: "さくら")
greeter.greet(times: 3)
こんにちは、さくらです。
こんにちは、さくらです。
こんにちは、さくらです。
このように、greet(times:)のように引数を使うことで、柔軟に処理を変えられます。
5. 戻り値のあるメソッド
メソッドは、計算結果などを戻すこともできます。これを戻り値(return value)といいます。
次の例では、年齢から生まれた年を計算して返すメソッドを定義しています。
struct Profile {
var name: String
var age: Int
func birthYear(currentYear: Int) -> Int {
return currentYear - age
}
}
let p = Profile(name: "健一", age: 30)
let year = p.birthYear(currentYear: 2025)
print("生まれ年は\(year)年です")
生まれ年は1995年です
このように、-> Intと書くことで、整数を戻すメソッドになります。
6. メソッドの使い分けと設計の考え方
メソッドを使うと、処理をひとまとまりにできて、読みやすく・使いやすいコードが書けます。
次のような場面で使うと便利です:
- あいさつ・計算・状態の確認など、特定の動作を何回も使いたいとき
- データを扱うだけでなく、「何かをする」処理をまとめたいとき
- クラスの外から処理を呼び出したいとき
Swiftでは、関数と違ってメソッドはインスタンスにひもづいている点がポイントです。
7. インスタンス化→メソッド呼び出しの流れを整理しよう
ここまでの内容を振り返ると、Swiftでの基本的な流れはこうなります:
classやstructを使って設計図(型)を作るinitで初期化してインスタンス(実体)を作る- 作ったインスタンスに対して
メソッドを呼び出す
この考え方をしっかり理解することで、オブジェクト指向の基本が自然と身につきます。