생성자(Constructor), 초기화(Initialization) 란?
먼저 생성자를 정의하자면
생성자는 클래스나 구조체의 인스턴스를 생성할 때 호출되는 특별한 메서드입니다. 이 메서드는 인스턴스의 초기 상태를 설정합니다.
생성자의 역할은 객체가 유효한 상태가 되도록 모든 필수 프로퍼티를 초기화하는 것입니다. 즉, 생성자는 객체가 생성된 후 사용할 준비가 완료된 상태로 만드는 작업을 담당합니다. 이를 통해 객체는 올바르게 설정된 프로퍼티를 가지며 예상된 동작을 수행할 수 있게 됩니다. 이 과정은 인스턴스 초기화라고 하며, 객체의 모든 속성에 적절한 초기값을 설정하는 작업을 포함합니다.
생성자의 기본 문법은
init(parameters) {
// 생성자 본문(statements)
// 프로퍼티를 초기화하거나 다른 초기화 작업을 수행
}
- init : 생성자를 정의하기 위해 사용하는 키워드입니다.
- parameters : 생성자에 전달되는 매개변수들입니다. 이 매개변수들은 생성자의 내부에서 인스턴스를 초기화하는 데 사용됩니다.
- statements : 생성자의 본문으로, 프로퍼티를 초기화하거나 필요한 초기화 작업을 수행하면 됩니다.
이러합니다.
다만 생성자 없이 즉 init를 사용하지 않아도 객체를 초기화할 수 있는 방법이 있습니다.
1. 프로퍼티에 기본 값 제공하기
2. 옵셔널 프로퍼티 사용하기
3. 구조체의 자동 초기화
1번부터 예제를 확인해 보겠습니다.
프로퍼티에 기본 값 제공하기
struct Point {
var x: Int = 0
var y: Int = 0
}
let point = Point() // 기본 생성자 사용
print(point.x) // 0
print(point.y) // 0
프로퍼티에 기본 값을 제공하면 Swift에서는 자동으로 기본 생성자를 생성합니다. 이 기본 생성자는 모든 프로퍼티를 기준값으로 초기화시킵니다.
옵셔널 프로퍼티 사용하기
struct Person {
var name: String?
var age: Int?
}
let person = Person() // 기본 생성자 사용
print(person.name) // nil
print(person.age) // nil
프로퍼티를 옵셔널로 선언하면, 기본 생성자가 자동으로 생성됩니다. 이 경우 nil로 초기화됩니다.
옵셔널은 값이 있을 수도 있고 없을 수도 있음을 나타내는 데이터 타입입니다. 옵셔널을 사용하게 되면 프로퍼티가 nil일 수 있음을 명시적으로 표현할 수 있기에 초기화될 수 있습니다.
구조체의 자동 초기화
struct Rectangle {
var width: Int
var height: Int
}
let rectangle = Rectangle(width: 10, height: 20) // 멤버와이즈 초기화 메서드 사용
print(rectangle.width) // 10
print(rectangle.height) // 20
모든 프로퍼티에 기본값을 제공하거나 기본값이 없는 프로퍼티가 있는 경우, Swfit가 자동으로 멤버와이즈 초기화 메서드를 생성합니다.
'Apple > Swift' 카테고리의 다른 글
| [iOS/Swift] 저장 속성(Stored Property) 이란? (1/2) (0) | 2024.08.02 |
|---|---|
| [iOS/Swift] 값 형식(Value Types), 참조 형식(Reference Types) 이란? (0) | 2024.07.31 |
| [iOS/Swift] 구조체(Struct), 클래스(class) 란? (0) | 2024.07.22 |
| [iOS/Swift] 열거형(Enums) 이란? (2) | 2024.07.20 |
| [iOS/Swift] 옵셔널(Optional), 옵셔널 바인딩(Optional Binding) 이란? (0) | 2024.07.19 |