Swift에서는 초기화(initialization) 메서드와 인스턴스(instance) 메서드가 서로 다른 용도와 역할을 가지고 있습니다. 초기화 메서드는 객체를 생성하고 초기화하는 데 사용되는 메서드로, 인스턴스 메서드는 객체에 대한 동작과 기능을 정의하는 메서드입니다. 이 두 가지 메서드의 차이점과 사용법에 대해서 알아보겠습니다.
초기화 메서드 (Initialization Methods)
초기화 메서드는 객체를 생성하고 멤버 변수를 초기화하는 데 사용됩니다. 이 메서드는 init
키워드를 사용하여 정의되며, 클래스 또는 구조체의 인스턴스 생성 시 자동으로 호출됩니다. 초기화 메서드는 객체 생성 시 필요한 매개 변수를 받을 수 있으며, 객체가 사용될 때 필요한 초기 상태를 설정하는 것이 목적입니다.
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
위의 예시에서 Person
클래스는 name
과 age
라는 두 개의 멤버 변수를 가지고 있습니다. init
메서드를 사용하여 객체를 생성할 때, name
과 age
를 매개 변수로 받아 초기화하게 됩니다.
인스턴스 메서드 (Instance Methods)
인스턴스 메서드는 객체의 동작과 기능을 정의하며, 객체가 생성되어 초기화된 후 사용될 때 호출됩니다. 인스턴스 메서드는 클래스나 구조체 내부에 정의되어 있으며, 해당 객체의 속성에 접근하거나 객체 내부에서 작동하는 기능을 구현합니다.
class Car {
var brand: String
var speed: Int
init(brand: String, speed: Int) {
self.brand = brand
self.speed = speed
}
func accelerate() {
self.speed += 10
}
}
위의 예시에서 Car
클래스는 brand
과 speed
라는 멤버 변수를 가지고 있습니다. accelerate
라는 메서드는 속도를 10만큼 증가시키는 기능을 가지고 있으며, 해당 객체의 속성을 변경하는 역할을 합니다.
사용 예시
let person = Person(name: "John", age: 25)
print(person.name) // 출력: John
let car = Car(brand: "Tesla", speed: 100)
car.accelerate()
print(car.speed) // 출력: 110
위의 예시에서 Person
클래스로부터 person
객체를 생성하고 name
속성을 출력하면 “John”이라는 결과를 얻습니다. 또한 Car
클래스로부터 car
객체를 생성하고 accelerate
메서드를 호출한 후 speed
속성을 출력하면 110이라는 결과를 얻습니다.
이처럼 초기화 메서드는 객체를 생성하고 초기 상태를 설정하는 데 사용되며, 인스턴스 메서드는 객체의 동작과 기능을 구현하는 데 사용됩니다. 두 메서드를 적절히 활용하여 Swift에서 객체 지향 프로그래밍을 구현할 수 있습니다.
참고 문서: