[swift] 클래스의 생성자(constructor)와 소멸자(destructor) 개념
클래스의 생성자(constructor)와 소멸자(destructor)는 객체지향 프로그래밍에서 중요한 개념입니다. 이 두 가지는 클래스의 인스턴스(instance)가 생성될 때와 소멸될 때 실행되는 특별한 메서드입니다.
생성자 (Constructor)
생성자는 객체가 만들어질 때 호출되며, 객체의 초기화를 담당합니다. Swift에서는 init
키워드를 사용하여 생성자를 정의할 수 있습니다. 생성자는 객체가 만들어지면서 필요한 초기화 작업을 수행하고 클래스의 프로퍼티들을 초기화합니다. 아래는 간단한 예제입니다.
class Person {
var name: String
init(name: String) {
self.name = name
}
}
let person1 = Person(name: "John")
위 예제에서 init
키워드를 사용하여 Person
클래스의 생성자를 정의하였고, name
프로퍼티를 초기화하는 작업을 수행하였습니다.
소멸자 (Destructor)
소멸자는 객체가 소멸될 때 호출되며, 객체와 관련된 리소스의 정리나 정리 작업을 담당합니다. Swift에서는 deinit
키워드를 사용하여 소멸자를 정의할 수 있습니다. 소멸자는 객체가 메모리에서 해제될 때 호출되므로, 클래스의 인스턴스가 더 이상 필요하지 않을 때 필요한 정리 작업을 수행합니다.
class Person {
var name: String
init(name: String) {
self.name = name
}
deinit {
print("Person 객체가 메모리에서 해제됩니다.")
}
}
var person1: Person? = Person(name: "John")
person1 = nil // Person 객체가 메모리에서 해제됩니다.
위 예제에서 deinit
키워드를 사용하여 Person
클래스의 소멸자를 정의하였습니다. 그리고 person1
변수에 nil
을 할당하여 객체를 메모리에서 해제하면 소멸자가 호출됩니다.
클래스의 생성자와 소멸자는 객체지향 프로그래밍에서 중요한 역할을 담당하며, 올바르고 안전한 객체의 생성과 소멸을 보장하기 위해 잘 활용되어야 합니다.