인스턴스
- 인스턴스는 class, struct, enum과 같은 설계도를 기반으로 실제 메모리에 생성되는 실체.
- class, struct, enum은 설계도의 역할
- 인스턴스는 설계도를 보고 직접 만들어져서 메모리에 저장되어 있는 값.
인스턴스의 init
- 인스턴스를 생성할 때 상태를 초기화 하여 생성해야 함.
- 붕어빵을 만드려면 반죽과 주재료가 필요한 것 처럼, 인스턴스를 만들 때 사용되는 변수, 상수(프로퍼티)의 값을 정해줘야 함.
- 필요한 재료(프로퍼티)를 넣어서 초기화 하여 생성함.
- init 키워드를 사용하여 모든 변수, 상수(프로퍼티)를 초기화 해야함.
- 변수나 상수에 기본값을 정해주거나, 값이 없음을 나타내는 Optional 타입으로 선언하면 초기화하지 않아도 됨.
// enum에서의 init
enum Season: String {
case spring
case summer
case autumn
case winter
}
let season: Season = .autumn // 상수 season에 autumn을 할당, season은 Season타입의 인스턴스.
// 값을 할당하면 자동으로 초기화 됨.