// 형식 속성
// 하나의 메모리를 모두 공유한다.
// 형식 속성은 인스턴스 속성이 아니기때문에 인스턴스로 접근 불가능
class Math {
static let pi = 3.14
}
let m = Math()
// pi는 형식 속성이기 때문에
// 형식속성은 기본적으로 lazy 타입이다. : 즉, 접근 하는 순간 초기화된다.
Math.pi
// instance속성이 아니기 때문에 이렇게 접근 불가능
//m.pi
// static 키워드 대신 class 키워드로 사용할때는 class에서 제한적으로 사용된다.
// static 키워드는 서브 클래스에서 오버라이딩이 금지되는데 class는 가능
enum Weekday: Int {
case sunday = 1, monday, tuesday, wednesday, thursday, friday, saturday
static var today: Weekday {
let cal = Calendar.current
let today = Date()
let weekday = cal.component(.weekday, from: today) // 오늘은 나타내는 정수가 저장된다.
return Weekday(rawValue: weekday)!
}
}
Weekday.today